BR112013002029B1 - Método, aparelho e meio de armazenamento - Google Patents

Método, aparelho e meio de armazenamento Download PDF

Info

Publication number
BR112013002029B1
BR112013002029B1 BR112013002029-6A BR112013002029A BR112013002029B1 BR 112013002029 B1 BR112013002029 B1 BR 112013002029B1 BR 112013002029 A BR112013002029 A BR 112013002029A BR 112013002029 B1 BR112013002029 B1 BR 112013002029B1
Authority
BR
Brazil
Prior art keywords
syntax elements
instructions
category
computer
symbols
Prior art date
Application number
BR112013002029-6A
Other languages
English (en)
Other versions
BR112013002029A2 (pt
Inventor
Jani Lainema
Kemal Ugur
Antti Olli Hallapuro
Original Assignee
Nokia Technologies Oy
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 Nokia Technologies Oy filed Critical Nokia Technologies Oy
Publication of BR112013002029A2 publication Critical patent/BR112013002029A2/pt
Publication of BR112013002029B1 publication Critical patent/BR112013002029B1/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/46Embedding additional information in the video signal during the compression process
    • H04N19/463Embedding additional information in the video signal during the compression process by compressing encoding parameters before transmission
    • 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/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]

Landscapes

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

Abstract

MÉTODO, APARELHO E PRODUTO PROGRAMA DE COMPUTADOR. Um método, um aparelho e produto de programa de computador são fornecidos para permitir o fornecimento de um processo eficaz na área da codificação e decodificação de vídeo através da utilização por entropia de complexidade, equilibrada, a fim de proporcionar um elevado nível de capacidade em relação á codificação de vídeo em uma forma rentável, Um método inclui categorizar uma pluralidade de elementos de sintaxe de conteúdo de vídeo em primeira e segunda categorias com base em uma frequência de ocorrência dos elementos de sintaxe no conteúdo de vídeo. O método também faz a entropia de códigos que correspondem á segunda categoria de elementos de sintaxe, e que tenham sido submetidos a uma atualização de contexto. Além disso, o método faz a entropia de símbolos de códigos que correspondem á segunda categoria de elementos de sintaxe e de ter contornado a atualização de contexto. Um aparelho correspondente e produto de programa de computador de são também fornecidos.

Description

CAMPO TECNOLÓGICO
Varias implementa96es se referem, de modo geral, a tecnologia de decodifica9ao e codifica9ao de video de dispositivo eletronico e, mais particularmente, diz respeito a um metodo e aparelho para proporcionar codifica9ao por entropia de complexidade equilibrada.
ANTECEDENTES
A era da cemun-icação -moderna, trouxe, urna tremenda expansao das redes de telefonia fixa e m6vel. Redes de cornputadores, redes de televisão e redes de telefonia estão experirnentando uma expansão tecnol6gica sern precedentes, impulsionada pela demanda dos consumidores. Tecnologias de rede m6vel e sem fio tern abordado exigencias dos consumidores relacionadas, proporcionando mais flexibilidade e rapidez de transferencia de informa9ão.
Tecnologias de rede atuais e futuras continuam a facilitar a facilidade de transferencia de informa9ão e comodidade aos usuarios, expandindo as capacidades de dispositivos eletronicos m6veis, mantendo o custo e o tamanho de tais dispositivos relativamente baixos. Devido a natureza ubiqua dos dispositivos eletronicos rn6veis, as pessoas de todas as idades e niveis de educa9ão estão agora utilizando terminais m6veis para se comunicar com outros individuos ou contatos, receber servi9os e/ou para compartilhar informa9ão, midia e outros contefidos. Assirn, dispositivos eletronicos rn6veis tambem estão se tornando mecanismos populares pelos quais os usuarios se cornunicarn uns corn os outros e consornem contefido.
Mesmo embora as capacidades de dispositivos eletronicos m6veis, com rela9ão a aquisi9ão e processamento de contefido, possibilitem que os servi9os de cornunica9ão e de presta9ão continuem a melhorar, o fato de que tais dispositivos sejam móveis e o desejo orientado pelo mercado em manter esses dispositivos relativamente pequenos inevitavelmente introduz desafios com relação a limites de vida útil da bateria e recursos de processamento. Enquanto a 5 vida da bateria continua a melhorar, o ritmo de expansão da carga de complexidade e de processamento continua a correr adiante. Assim, o uso significativo de um dispositivo eletrônico móvel para os serviços e funções descritos acima pode . consumir energia da bateria rapidamente e acabar 10 forçando o usuário a recarregar, com frequência, a bateria ou limitar o seu uso, o que degrada a experiência do usuário. Por conseguinte, para aumentar a satisfação do usuário, é desejável manter níveis elevados de capacidade da maneira mais eficiente possível.
BREVE SUMÁRIO
Um método, aparelho e produto de programa de computador, por conseguinte, são fornecidos para permitir o fornecimento de um processamento eficaz na área da codificação e decodificação de vídeo. Em uma concretização de 20 exemplo, a codificação por entropia de complexidade equilibrada pode ser empregada de modo a proporcionar um nível elevado de capacidade em relação à codificação e decodificação de vídeo, mantendo os custos em termos de complexidade relativamente baixos.
BREVE DESCRIÇÃO DO(S) DESENHO(S)
Tendo assim descrito várias concretizações, em termos gerais, a referência será feita agora aos desenhos anexos, que não estão, necessariamente, desenhados em escala, e em que:
A Figura 1 é um diagrama de blocos esquemático de um terminal móvel, que pode empregar uma concretização exemplificativa;
A Figura 2 é um diagrama de blocos esquemático de um sistema de comunicações sem fios de acordo com uma concretização exemplificativa,-
A Figura 3 ilustra um diagrama em bloco de um aparelho para proporcionar codificação por entropia de complexidade equilibrada de acordo com uma concretização exemplificativa;
A Figura 4 ilustra um gráfico que mostra a complexidade vs taxa de bits fornecida por uma concretização exemplificativa;
A Figura 5 é um fluxograma de acordo com um outro método de exemplo para proporcionar codificação por entropia de complexidade equilibrada de acordo com uma concretização exemplif icativa ;
A Figura 6 ilustra a estrutura associada a um processo de codificação de exemplo;
A Figura 7 ilustra a estrutura associada a um processo de decodificação de exemplo, e
A Figura 8 ilustra um gráfico que mostra a complexidade vs taxa de bits para um codificador convencional.
DESCRIÇÃO DETALHADA
Algumas concretizações serão agora descritas mais completamente a seguir com referência aos desenhos anexos, nos quais algumas, mas não todas as concretizações são mostradas. Na verdade, várias concretizações podem ser realizadas de muitas formas diferentes e não devem ser interpretadas como limitadas às concretizações aqui estabelecidas, ao invés disso, estas concretizações são fornecidas para que esta divulgação satisfaça as exigências legais. Números de referência iguais se referem a elementos semelhantes por toda parte. Como aqui utilizado, os termos "dados", "conteúdo", "informação" e termos similares podem ser usados indistintamente para se referir a dados que podem ser transmitidos, recebidos e/ou armazenados de acordo com as concretizações. Assim, o uso de tais termos não deve ser tomado para limitar o espírito e escopo das concretizações diferentes.
Além disso, tal como aqui utilizado, o termo "circuito" se refere a (a) implementações em hardware apenas de circuitos (por exemplo, as implementações em circuitos analógicos e/ou circuitos digitais), (b) combinações de circuitos e produto ou produtos de programa dê computador, 10 compreendendo o software e/ou instruções de firmware armazenadas em uma ou mais memórias legíveis por computador, que trabalham em conjunto para fazer com que um dispositivo execute uma ou mais funções aqui descritas, e (c) circuitos, tais como, por exemplo, um microprocessador ou 15 microprocessadores ou uma porção de um microprocessador ou microprocessadores, que necessita de software ou firmware para a operação, mesmo se o software ou firmware não estiver fisicamente presente. Esta definição de 'circuito' se aplica a todos os usos deste termo aqui, inclusive em eventuais reivindicações. Como um exemplo adicional, tal como aqui utilizado, o termo "circuito" também inclui uma implementação que inclui um ou mais processadores e/ou parte ou partes do mesmo e que acompanha o software e/ou firmware. Como outro exemplo, o termo "circuito" tal como aqui utilizado também 25 inclui, por exemplo, uma banda base de circuito integrado ou aplicações de circuito integrado para o processador de um telefone celular ou um circuito integrado semelhante em um servidor, um dispositivo de rede celular, outro dispositivo de rede, e/ou outro dispositivo de computação.
Tal como aqui definido "um meio de armazenamento legível por computador", que se refere a um meio de armazenamento, não transitório, físico (por exemplo, o dispositivo de memória volátil ou não volátil), pode ser diferenciado a partir de um "meio de transmissão legível por computador", que se refere a um sinal eletromagnético.
Algumas concretizações podem ser empregadas em terminais móveis, a fim de realizar a codificação e 5 decodificação de vídeo de forma mais eficiente. No entanto, as concretizações de exemplo podem, alternativamente, ser praticadas em outros dispositivos eletrônicos, incluindo os terminais fixos. Como tal, embora a codificação e “decodificação de vídeo de complexidade reduzida possa ser 10 particularmente útil em relação à operação em ambientes com recursos limitados (por exemplo, terminais móveis), deve ser notado que a redução da complexidade também pode ser útil em outros ambientes nos quais os recursos não são limitados.
Um codec de vídeo geralmente inclui um codificador 15 e um decodificador. O codificador pode ser empregado para a transformação de uma entrada de vídeo para uma representação comprimida adequada para o armazenamento e/ou transmissão. O decodificador pode ser empregado para descomprimir a representação de vídeo comprimido de volta a uma forma 20 visível. Em muitas situações, o codificador descarta alguma informação da sequência de vídeo original, a fim de representar o vídeo de uma forma mais compacta (por exemplo, a uma menor taxa de bits).
Um codec de vídeo híbrido típico (por exemplo, ITU- T H.263 e H.264) pode codificar informações de vídeo em duas fases. Na primeira fase, os valores de pixel de uma área de imagem específica (ou "blocos"), podem ser previstos, por exemplo, por meio de compensação de movimento (por exemplo, encontrar e indicar uma área de um dos quadros de vídeo 30 previamente codificada que corresponde de perto ao bloco que está sendo codificado) ou por meio do espaço (por exemplo, usando os valores de pixel em todo o bloco a ser codificado de uma maneira específica) . Na segunda fase, o erro de predição (por exemplo, a diferença entre o bloco previsto de pixels e o bloco original de pixels) é codificado. A segunda fase geralmente inclui transformar a diferença nos valores de pixel usando uma transformação especificada (por exemplo, 5 Transformada cosenoidal discreta (DCT) ou uma variante da mesma), quantizando os coeficientes, e codificando por entropia os coeficientes quantizados. Variando a fidelidade do processo de quantização, o codificador pode controlar o equilíbrio entre a precisão da representação do pixel 10 (qualidade da imagem) e o tamanho da representação de vídeo codificada resultante (tamanho ou taxa de bits de transmissão). A estrutura associada com o processo de codificação acima descrito é ilustrada, por exemplo, na Figura 6.
Um decodificador típico reconstrói o vídeo de saída através da aplicação de meio de predição similar ao codificador para formar uma representação predita dos blocos de pixels (por exemplo, utilizando o movimento ou a informação espacial criada pelo codificador e armazenada na 20 representação comprimida) e o erro de predição de decodificação. A predição de erro de decodificação pode ser uma operação inversa da codificação de predição de erro que recupera o sinal de erro de predição quantizado no domínio de pixel espacial. Depois de aplicar a previsão e a decodificação de erro de predição, o decodificador pode resumir a previsão e sinais de erro de previsão (por exemplo, valores de pixel) para formar um quadro de vídeo de saída. O decodificador (e codificador) pode também aplicar filtros adicionais para melhorar a qualidade do vídeo de saída antes 30 de passá-lo para exibição e/ou armazenando-o como uma referência de predição para os próximos quadros da sequência de vídeo. O quadro associado ao processo de decodificação descrito acima está ilustrado na Figura 7.
Em codecs de vídeo típico, a informação de movimento é indicada por vetores de movimento associados a cada bloco de imagem de movimento compensado. Cada um dos vetores de movimento representa o deslocamento do bloco de 5 imagem na imagem a ser codificada (no lado do codificador) ou decodificado (no lado do decodificador) e a predição de bloco de origem em uma das imagens previamente codificadas ou decodificadas. De modo a representar os vetores de movimento • ' de'forma eficiente, -os vetores de- movimento são tipicamente codificados diferencialmente no que diz respeito aos vetores de movimento previstos específicos do bloco. Em codecs de vídeo típico, os vetores de movimento preditos são criados de um modo predefinido, como, por exemplo, através do cálculo da média dos vetores de movimento codificados ou decodificados 15 dos blocos adjacentes.
Em codecs de vídeo típico, a previsão residual após a compensação do movimento é primeiro transformada com um kernel de transformação (tal como DCT) e, em seguida, codificada, pois pode haver alguma correlação entre o 20 residual. Assim, a transformada pode, em alguns casos ajudar a reduzir essa correlação e fornece uma codificação mais eficiente.
Codificadores de vídeo típicos utilizam funções de custo de Lagrange para encontrar melhores modos de 25 codificação (por exemplo, o modo de Macroblock desejado e • vetores de movimento associados). Este tipo de função de custo utiliza um fator de ponderação X para unir a distorção da imagem (exato ou estimado) devido a métodos de codificação de perdas e a quantidade (exata ou estimada) de informações 30 que são necessárias para representar os valores de pixels em uma área de imagem: C = D + ÂR(Eq. 1)
Em que Ceo custo Lagrangeano a ser minimizado, D é a distorção de imagem (por exemplo, Erro Médio Quadrático) com o modo e vetores de movimento considerados, e R o número de bits necessário para representar os dados necessários para 5 reconstruir o bloco de imagem no decodificador (incluindo a quantidade de dados que representam os vetores de movimento candidatos).
Muitos codecs de vídeo definem subconjuntos de ferramentas de codificação ("perfis") para serem usados . em 10 casos de uso diferentes. Esta abordagem tem a vantagem de permitir que os diferentes dispositivos implementem as ferramentas de codificação mais adequadas para o uso pretendido e os recursos disponíveis na plataforma de implementação.
Uma desvantagem desta abordagem é que pode ser perdida a interoperabilidade entre diferentes perfis do codec.
Os Codecs de vídeo de uso geral, tais como H.264/AVC, definem ferramentas de codificação com diferentes 20 requisitos computacionais em perfis diferentes do padrão.
Esta definição pode levar a situações em que as implementações do mesmo nível, não podem necessariamente interagir umas com as outras se elas suportarem um perfil diferente do padrão. Uma razão importante para ter vários 25 perfis no H.264/AVC é a parte de codificação por entropia do padrão, onde alguns perfis suportam apenas a abordagem baseada em Codificação de Comprimento Variável Adaptativa ao Contexto de Baixa Complexidade (CAVLC), enquanto alguns outros perfis suportam também a abordagem de Codificação 30 Aritmética Binária Adaptativa de Contexto, (CABAC). 0 suporte CABAC não é necessário para as implementações dos perfis de baixa complexidade computacional na medida em que os requisitos do método de CABAC aumentam substancialmente como uma função da taxa de bits utilizada. A codificação e decodificação dos coeficientes de transformada de cosseno discreta na abordagem CABAC pode causar problemas em implementações reais na medida em que os requisitos 5 computacionais de operação aumentam significativamente, como uma função da taxa de bits de vídeo, como mostrado na Figura 8 .
Algumas concretizações da presente invenção podem prever a aplicação de um esquema de - codif icação que tira 10 proveito da codificação de comprimento variável e codificação aritmética com um projeto de codificação por entropia unificado. Os aspectos de codificação de comprimento variável podem operar para manter a complexidade relativamente baixa, enquanto os aspectos de codificação aritmética podem ajudar a 15 manter relativamente elevada a eficiência de codificação. O projeto de codificação por entropia unificado de algumas concretizações de exemplo pode empregar um mecanismo único de codificação de entropia, que opera com respeito a duas categorias definidas que são definidas para diferentes 20 elementos de sintaxe. Como tal, categorizando os elementos de sintaxe diferentes, diferentes categorias de símbolos podem ser operadas de forma diferente, a fim de atingir a eficiência relativamente superior em uma aplicação de mais baixa complexidade.
A Figura 1, uma concretização de exemplo, ilustra um diagrama de blocos de um terminal móvel 10, que se beneficiaria com várias concretizações. Deve ser entendido, no entanto, que o terminal móvel 10, tal como ilustrado e descrito a seguir é meramente ilustrativo de um tipo de 30 dispositivo que pode se beneficiar de várias concretizações e, portanto, não deve ser tomado para limitar o escopo das concretizações. Como tal, os vários tipos de terminais móveis, como assistentes digitais portáteis (PDAs), telefones celulares, pagers, televisores móveis, dispositivos de jogos, computadores portáteis, máquinas fotográficas, gravadores de vídeo, áudio/vídeo, rádios, aparelhos de posicionamento (por exemplo, sistema de posicionamento global (GPS)), ou qualquer 5 combinação dos tipos acima mencionados, e outros tipos de sistemas de comunicações de voz e de texto, podem facilmente empregar várias concretizações.
O terminal móvel 10 pode incluir uma antena 12 (ou várias antenas) -em-comunicação operável com um transmissor 14 e um receptor 16. O terminal móvel 10 pode ainda incluir um aparelho, tal como um controlador 20 ou outro dispositivo de processamento, o qual fornece sinais para e recebe sinais a partir do transmissor 14 e receptor 16, respectivamente. Os sinais incluem informação de sinalização em conformidade com a norma de interface aérea do sistema aplicável celular, e também discurso do usuário, os dados recebidos e/ou dados gerados pelo usuário. A este respeito, o terminal móvel 10 é capaz de funcionar com um ou mais padrões de interface aérea, protocolos de comunicação, tipos de modulação e os tipos de acesso. A título de ilustração, o terminal móvel 10 é capaz de funcionar de acordo com qualquer um de um número de protocolos de comunicação de primeira, segunda, terceira e/ou quarta geração ou semelhantes. Por exemplo, o terminal móvel 10 pode ser capaz de funcionar de acordo com os protocolos de comunicação sem fio da segunda geração (2G)IS-136 (acesso múltiplo por divisão de tempo (TDMA)), GSM (sistema global para comunicações móveis), e IS-95 (acesso múltiplo por divisão de código (CDMA) ) , ou com os protocolos de comunicação da terceira geração (3G) sem fio, tais como
Universal Mobile Telecommunications System (UMTS), CDMA2000, CDMA de banda larga (WCDMA) e divisão de tempo síncrona CDMA (TD-SCDMA) , com protocolo de comunicação sem fio, como 3,9 g E-UTRAN, com protocolos de comunicação sem fio da quarta geração (4G) ou semelhantes. Como uma alternativa (ou adicionalmente), o terminal móvel 10 pode ser capaz de funcionar em conformidade com mecanismos de comunicação não celulares. Por exemplo, o terminal móvel 10 pode ser capaz de 5 comunicar em uma rede de área local sem fio (WLAN) ou outras redes de comunicação descritas a seguir em ligação com a Figura 2.
Em algumas concretizações, o controlador 20 pode incluir circuitos desejáveis para a aplicação- de áudio e 10 funções lógicas do terminal móvel 10. Por exemplo, o controlador 20 pode ser constituído por um dispositivo processador de sinal digital, um dispositivo microprocessador, e diferentes conversores analógico para digital, conversores digital para analógico, e os circuitos 15 de suporte. Funções de controle e processamento de sinais do terminal móvel 10 são alocadas entre esses dispositivos de acordo com as suas respectivas capacidades. O controlador 20, portanto, pode também incluir a funcionalidade para codificar com convolução e intercalar a mensagem e dados antes da 20 modulação e da transmissão. O controlador 20 pode incluir adicionalmente um codificador de voz do sistema interno, e pode incluir um modem de dados interno. Além disso, o controlador 20 pode incluir a funcionalidade para operar um ou mais programas de software, que podem ser armazenados na 25 memória. Por exemplo, o controlador 20 pode ser capaz de operar um programa de conectividade, tal como um navegador da web convencional. O programa de conectividade pode então permitir que o terminal móvel 10 transmita e receba o conteúdo da Web, como conteúdo baseado em localização e/ou 3 0 outro conteúdo da página da web, de acordo com um protocolo de aplicação sem fio - Wireless Application Protocol (WAP), protocolo de transferência de hipertexto - Hypertext Transfer Protocol (HTTP) e/ou semelhante, por exemplo.
O terminal móvel 10 pode também compreender uma interface de usuário, incluindo um dispositivo de saída tal como um fone de ouvido convencional ou alto-falante 24, uma campainha 22, um microfone 26, um visor 28, e uma interface 5 de entrada de usuário, os quais são acoplados ao controlador 20. A interface de entrada do usuário, que permite que o terminal móvel 10 receba dados, pode incluir qualquer um de um certo número de dispositivos que permitam que o terminal móvel 10 receba dados, tais como um teclado'30, uma tela de 10 exibição sensível ao toque (não mostrada), ou outro dispositivo de entrada. Em concretizações, incluindo o teclado 30, o teclado 30 pode incluir teclas numéricas convencionais (0-9) e as teclas relacionadas (#, *) e outras teclas duras e macias utilizadas para operar o terminal móvel 15 10. Em alternativa, o teclado 30 pode incluir uma disposição de teclado QWERTY convencional. O teclado 30 pode também incluir várias teclas com funções associadas. Além disso, ou em alternativa, o terminal móvel 10 pode incluir um dispositivo de interface, tal como um joystick, ou outra 20 interface de entrada de usuário. O terminal móvel 10 inclui ainda uma bateria 34, tal como uma bateria de vibração, para alimentar vários circuitos que são necessários para operar o terminal móvel 10, assim como, opcionalmente, fornecer vibrações mecânicas como uma saída detectável.
O terminal móvel 10 pode ainda incluir um módulo de identificação do usuário (UIM) 38. A UIM 38 é tipicamente um dispositivo de memória que tem um processador construído. A UIM 38 pode incluir, por exemplo, um módulo de identificação de assinante (SIM), um cartão de circuito integrado universal 30 (UICC), um módulo de identificação de assinante universal (USIM), um módulo de identificação do usuário removível (R- UIM) , e semelhantes. O UIM 38 normalmente armazena elementos de informações relativos a um assinante móvel. Além do UIM 38, o terminal móvel 10 pode ser equipado com uma memória. Por exemplo, o terminal móvel 10 pode incluir memória volátil 40, tal como memória de acesso volátil (RAM) , incluindo uma área de cache para o armazenamento temporário de dados. O 5 terminal móvel 10 pode também incluir outra memória não- volátil 42, que pode ser incorporada e/ou pode ser removível. As memórias podem armazenar qualquer de um número de pedaços de informações e dados, usados pelo terminal móvel 10 para • _ . - implementar as funções do terminal móvel 10. Por exemplo, as 10 memórias podem incluir um identificador, tal como um código de identificação de equipamento móvel internacional (IMEI), capaz de identificar unicamente o terminal móvel 10.
Em algumas concretizações, o terminal móvel 10 pode ainda incluir um codificador/decodificador de vídeo 48 para 15 realizar a codificação de vídeo e operações de decodificação.
O codificador de vídeo/decodificador 48 pode ser configurado para codificar os dados através da transformação de entrada de vídeo em dados de vídeo comprimidos e dados de decodificação através da conversão de dados de vídeo 20 comprimidos de volta para uma forma visível.
A Figura 2 é um diagrama de blocos esquemático de um sistema de comunicações sem fio de acordo com uma 1 concretização exemplificativa. Referindo agora à Figura 2, , uma ilustração de um tipo de sistema que se beneficiaria de várias concretizações é fornecida. Como mostrado na Figura 2, I' ' um sistema de acordo com uma concretização de exemplo, inclui um dispositivo de comunicação (por exemplo, o terminal móvel 10) e, em alguns casos, também os dispositivos de comunicação adicionais, que podem, cada um, ser capazes de se comunicar 30 com uma rede 50. Os dispositivos de comunicação do sistema podem ser capazes de se comunicar com os dispositivos de rede ou um com o outro através da rede 50.
Em uma concretização de exemplo, a rede 50 inclui um conjunto de vários diferentes nós, dispositivos ou funções que são capazes de comunicação uns com os outros por meio de fios correspondente e/ou de interfaces sem fios. Como tal, a ilustração da Figura 2 deve ser entendida como sendo um 5 exemplo de uma vista geral de certos elementos do sistema e não ver um conjunto abrangente e detalhado do sistema ou da rede 50. Apesar de não ser necessário, em alguns exemplos de concretização, a rede 50 pode ser capaz de suportar a comunicação de acordo com qualquer juma ou mais de uma série 10 de protocolos de comunicação móveis de primeira geração (1G), segunda geração (2G) , 2.5G, terceira geração (3G 3.5G), 3.9G, quarta geração (4G) , Long Term Evolution (LTE), e/ou similares.
Um ou mais terminais de comunicação, tais como o 15 terminal móvel 10 e os outros dispositivos de comunicação podem ser capazes de comunicação uns com os outros através da rede 5 0 e cada um deles pode incluir uma antena ou antenas para transmitir sinais para e receber sinais a partir de um local de base, o qual poderia ser, por exemplo, uma estação 20 base que é uma parte de uma ou mais redes celulares ou móveis ou um ponto de acesso que pode ser acoplado a uma rede de dados, tal como uma rede de área local (LAN) , uma rede de área metropolitana (MAN) , e/ou uma rede de área ampla (WAN) , tal como a Internet. Por sua vez, os outros dispositivos, 25 tais como dispositivos de processamento ou elementos (por exemplo, computadores pessoais, computadores servidores ou similares) podem ser acoplados ao terminal móvel 10 através da rede 50. Direta ou indiretamente para ligar o terminal móvel 10 e outros dispositivos para a rede 50, o terminal 30 móvel 10 e outros dispositivos podem ser capazes de se comunicar uns com os outros e/ou com a rede, por exemplo, de acordo com numerosos protocolos de comunicação, incluindo protocolo de transferência de hipertexto - Hypertext Transfer Protocol (HTTP) e/ou semelhantes, para assim realizar a comunicação ou várias outras funções do terminal móvel 10 e os outros dispositivos de comunicação, respectivamente.
Além disso, embora não seja mostrado na Figura 2, o 5 terminal móvel 10 pode se comunicar de acordo com, por exemplo, rádio frequência (RF), Bluetooth (BT), infravermelho (IR), ou qualquer uma de uma série de diferentes técnicas de comunicação de telefonia fixa ou sem fio, incluindo LAN, LAN sem fio (WLAN) , Worldwide Interoperability for Microwave 10 Access (WiMAX), Wi-Fi, banda ultra-larga (UWB), técnicas de Wibree e/ou similares. Como tal, o terminal móvel 10 pode ser ativado para comunicar com a rede 50 e outros dispositivos de comunicação por qualquer um dos vários mecanismos de acesso diferentes. Por exemplo, mecanismos de acesso móveis, tais 15 como acesso múltiplo por divisão de código de banda larga (W- CDMA), CDMA2000, sistema global para comunicações móveis (GSM), General Packet Radio Service (GPRS) e/ou similares podem ser suportados, bem como mecanismos de acesso sem fio como WLAN, WiMAX, e/ou os mecanismos de acesso fixos e 20 semelhantes, como linha de assinante digital (DSL), modem a cabo, Ethernet e/ou similares.
A Figura 3 ilustra um diagrama de blocos de um aparelho que pode ser empregado no terminal móvel 10 para receber ou de outro modo facilitar a operação de uma 25 concretização de exemplo. Uma concretização de exemplo será agora descrita com referência à Figura 3, na qual certos elementos de um aparelho para proporcionar codificação por entropia de complexidade equilibrada são exibidos. 0 aparelho da Figura 3 pode ser utilizado, por exemplo, no terminal 30 móvel 10. No entanto, em alternativa, o aparelho pode ser incorporado em uma variedade de outros dispositivos, tanto fixos e móveis (tais como, por exemplo, qualquer um dos dispositivos listados acima). Além disso, deve ser notado que os dispositivos ou elementos descritos a seguir podem não ser obrigatórios e, assim, alguns podem ser omitidos em certas concretizações.
Referindo-se agora â Figura 3, um aparelho para 5 fornecer codificação por entropia de complexidade equilibrada é fornecido. O aparelho pode incluir ou não estar em comunicação com um processador 70, uma interface de usuário 72, uma interface de comunicação 74 e um dispositivo de memória 76. Em__a_lgumas concretizações, o processador 70 (e/ou 10 co-processadores, ou qualquer outro conjunto de circuitos de processamento auxiliar ou de outra forma associado ao processador 70) pode estar em comunicação com o dispositivo de memória 76 através de um barramento para a passagem de informação entre os vários componentes do aparelho. 0 15 dispositivo de memória 76 pode incluir, por exemplo, uma ou mais memórias voláteis e/ou não-voláteis. Em outras palavras, por exemplo, o dispositivo de memória 76 pode ser um dispositivo de armazenamento eletrônico (por exemplo, um meio de armazenamento legível por computador) que compreende 20 portas configuradas para armazenar dados (por exemplo, bits), que podem ser recuperados por uma máquina (por exemplo, um dispositivo de computação como o processador 70) . O dispositivo de memória 76 pode ser configurado para armazenar informação, dados, aplicações, instruções ou semelhante para 25 permitir que o aparelho realize as várias funções, de acordo com uma concretização exemplificativa da presente invenção. Por exemplo, o dispositivo de memória 76 pode ser configurado para realizar o armazenamento temporário de dados de entrada para processamento pelo processador 70. Adicionalmente ou em 30 alternativa, o dispositivo de memória 76 pode ser configurado para armazenar as instruções para execução pelo processador 70.
0 aparelho pode, em algumas concretizações, ser um terminal móvel (por exemplo, terminal móvel 10) ou um dispositivo de comunicação fixa ou dispositivo de computação configurado para utilizar uma concretização exemplificativa da presente invenção. No entanto, em algumas concretizações, 5 o aparelho pode ser concretizado como um chip ou conjunto de chips. Em outras palavras, o aparelho pode compreender um ou mais pacotes físicos (por exemplo, chips), incluindo materiais, componentes e/ou os fios de um conjunto estrutural (por exemplo, uma placa de base) .- O conjunto estrutural pode 10 proporcionar resistência física, conservação do tamanho, e/ou limitação de interação eléctrica para conjunto de circuitos componente incluído na mesma. O aparelho pode, portanto, em alguns casos, ser configurado para implementar uma concretização da presente invenção em um chip único, ou como 15 um único "sistema em um chip". Como tal, em alguns casos, um chip ou chipset pode constituir meios para a realização de uma ou mais operações para fornecer as funcionalidades aqui descritas.
O processador 70 pode ser incorporado em um número 20 de maneiras diferentes. Por exemplo, o processador 70 pode ser concretizado como um ou mais dos vários meios de processamento, tais como um co-processador, um microprocessador, um controlador, um processador de sinal digital (DSP) , um elemento de processamento, com ou sem um 25 DSP de acompanhamento, ou processamento de vários outros circuitos incluindo circuitos integrados, tal como, por exemplo, um ASIC (circuito integrado específico de aplicativo - Application Specific Integrated Circuit), um FPGA (arranjo de portas programável em campo - Field Programmable Gate 30 Array), uma unidade de microcontrolador (MCU), um acelerador de hardware, um chip de computador para fins especiais ou similares Como tal, em algumas concretizações, o processador 70 pode incluir um ou mais núcleos de processamento configurado para executar de forma independente. Um processador multi-core pode permitir multiprocessamento dentro de um único pacote físico. Adicionalmente ou alternativamente, o processador 70 pode incluir um ou mais 5 processadores configurados em paralelo através do barramento permitir a execução de instruções de pipelining independentes, e/ou multithreading.
Em uma concretização de exemplo, o processador 70 pode ser configurado para executar -instruções armazenadas no 10 dispositivo de memória 76 ou de outro modo acessíveis ao processador 70. Alternativamente ou adicionalmente, o processador 70 pode ser configurado para executar a funcionalidade codificada rígida. Como tal, se configurado por hardware ou métodos de software, ou por uma combinação 15 dos mesmos, o processador 70 pode representar uma entidade (por exemplo, fisicamente incorporada no circuito) capaz de realizar operações de acordo com uma concretização da presente invenção, enquanto configurada de acordo. Assim, por exemplo, quando o processador 70 está concretizado como um 20 ASIC, FPGA ou algo semelhante, o processador 70 pode ser especificamente configurado por hardware para realizar as operações aqui descritas. Em alternativa, como outro exemplo, quando o processador 70 está concretizado como um executor de instruções de software, as instruções podem especificamente 25 configurar o processador 70 para executar os algoritmos e/ou as operações aqui descritas, quando as instruções são executadas. No entanto, em alguns casos, o processador 70 pode ser um processador de um dispositivo específico (por exemplo, um terminal móvel ou outro dispositivo de rede), 30 adaptado para empregar uma concretização da presente invenção por meio de uma configuração adicional do processador 70 por instruções para executar os algoritmos e/ou as operações aqui descritas. 0 processador 70 pode incluir, entre outras coisas, um relógio, uma unidade aritmética e lógica (ALU) de portas lógicas e configurados para suportar o funcionamento do processador 70. Por outro lado, a interface de comunicação 74 pode 5 ser qualquer meio, tal como um dispositivo ou circuito incorporado em qualquer hardware, software, ou uma combinação de hardware e software que está configurado para receber e/ou transmitir dados de/para uma rede e/ou de qualquer outro dispositivo ou módulo de comunicação com o aparelho. A este 10 respeito, a interface de comunicação 74 pode incluir, por exemplo, uma antena (ou antenas múltiplas) e hardware de suporte e/ou software para permitir a comunicação com uma rede de comunicações sem fios. Em alguns ambientes, a interface de comunicação 74 pode, alternativamente, ou também 15 suportar comunicação com fios. Como tal, por exemplo, a interface de comunicação 74 pode incluir um modem de comunicação e/ou de hardware/software para suporte de comunicação através de um cabo de linha de assinante digital (DSL), barramento serial universal (USB) ou outros 20 mecanismos.
A interface de usuário 72 pode estar em comunicação com o processador 7 0 para receber uma indicação de uma entrada do usuário na interface do usuário 72 e/ou para proporcionar uma saída audível, visual, mecânica ou outra 2 5 para o usuário. Como tal, a interface de usuário 72 pode incluir, por exemplo, um teclado, um mouse, um joystick, um monitor, uma tela sensível ao toque, teclas de software, um microfone, um alto-falante, ou outros mecanismos de entrada/saída. A este respeito, por exemplo, o processador 70 30 pode compreender um circuito de interface de usuário configurado para controlar, pelo menos, algumas das funções de um ou mais elementos da interface de usuário, tais como, por exemplo, um alto-falante, campainha, microfone, visor e/ou semelhantes. O processador 70 e/ou circuitos de interface de usuário que compreendem o processador 70 podem ser configurados para controlar uma ou mais funções de um ou mais elementos da interface do usuário através de instruções 5 de programa de computador (por exemplo, software e/ou firmware) armazenados em uma memória acessível ao processador 70 (por exemplo, o dispositivo de memória 76, e/ou similares).
Em uma concretização de exemplo, O processador 70 10 pode ser concretizado como, incluindo ou controlando um mecanismo de codificação por entropia 80 e um categorizador 82. Como tal, em algumas concretizações, o processador 70 pode ser dito para provocar, direta ou controlar a execução ou a ocorrência de várias funções atribuídas ao mecanismo de 15 codificação por entropia 80 e o categorizador 82, respectivamente, tal como aqui descrito. O mecanismo de codificação por entropia 80 e o categorizador 82 podem cada um ser quaisquer meios, tais como um dispositivo ou circuito de funcionamento em conformidade com o software ou de outra 20 forma incorporado em hardware ou em uma combinação de hardware e de software (por exemplo, o processador 70 de operação sob o controle de software, o processador 70 incorporado como um ASIC ou FPGA especificamente configurado para executar as operações aqui descritas, ou uma combinação 25 dos mesmos), assim, a configuração do dispositivo ou nos circuitos para realizar as funções correspondentes do mecanismo de codificação por entropia 80 e o categorizador 82, respectivamente, tal como aqui descrito. Assim, em exemplos em que o software é empregado, ou um dispositivo ou 30 circuitos (por exemplo, o processador 70, em um exemplo) executa o software que forma a estrutura associada com tais meios.
O categorizador 82 pode ser configurado para dividir os elementos de sintaxe que podem ocorrer em um dado fluxo de bits (por exemplo, um fluxo de bits associados com o conteúdo de vídeo a ser processado) em categorias. Em uma concretização de exemplo, a primeira categoria inclui os 5 símbolos que ocorrem com pouca frequência e a segunda categoria inclui símbolos que ocorrem com relativa frequência. Deste modo, por exemplo, uma frequência de ocorrência limiar pode ser definida para os símbolos e os símbolos que se prevê que venham a ocorrer com mais 10 frequência do que a frequência limite podem ser determinados para a segunda categoria, enquanto os símbolos que se prevê venham a ocorrer menos frequentemente do que o frequência limite podem ser determinados para a primeira categoria. Em alguns casos, o limite de frequência pode ser determinado com 15 base na frequência de ocorrência de símbolos na mais alta taxa de bits permitida em um determinado sistema. Como tal, os símbolos da primeira categoria não só podem ocorrer relativamente com pouca frequência, mesmo em taxas de bits mais elevadas permitidas. Ao mesmo tempo, a segunda categoria 20 pode incluir símbolos cuja ocorrência aumenta significativamente a taxa de bits como um aumento total de fluxo de bits de vídeo.
Após a categorização ser realizada pelo categorizador 82, o mecanismo de codificação por entropia 80 25 pode realizar a binarização e/ou operações de codificação por entropia empregando um tratamento diferente com base nas categorias definidas pelo categorizador 82. Por exemplo, para a primeira categoria, a binarização pode ser realizada utilizando uma técnica de binarização selecionada (por 30 exemplo, abordagens CABAC ou Pipe/V2V (duração variável para duração variável)) seguida de uma atualização do contexto e codificação por entropia com probabilidades de bin variáveis. A sintaxe para os símbolos da segunda categoria pode mimetizar codificação de duração variável tradicional e pode ser realizada por símbolos de binarização objetivando a probabilidade de 50 por cento para ambos bins 0 e 1. Para os casos de coeficientes residuais, os símbolos binarizados 5 podem ser gerados semelhantes para executar a codificação de comprimento, seguida de codificação de Huffman, ou utilizando outros métodos mais avançados. Depois de binarização dos símbolos com uma probabilidade alvo para bins 0 e 1, a etapa - de atualização de contex_tp_.pode ser ignorada para os bins resultantes. A codificação por entropia pode, então, ser realizada com probabilidade de 50 por cento. Em alguns exemplos, um modo de codificação de desvio pode ser implementado por um mecanismo CABAC para realizar a codificação por entropia.
Para a decodificação, por exemplo, algumas concretizações podem processar, primeiro, símbolos da categoria usando procedimentos correspondentes ao mecanismo de codificação empregado. Por exemplo, se a codificação é realizada utilizando abordagens CABAC ou Pipe/V2V relacionadas, as abordagens de decodificação correspondentes para cada um deles podem ser implementada para os símbolos da primeira categoria. Ao mesmo tempo, os elementos de sintaxe pertencentes à segunda categoria podem empregar o mesmo mecanismo de codificação (por exemplo, o mecanismo de codificação por entropia 80) como símbolos da primeira • categoria, com exceção de que as probabilidades de bin de 50 por cento estáticas podem ser empregadas em relação a decodificação desses símbolos (por exemplo, empregando um modo de mecanismo de codificação CABAC).
Uma vez as operações de atualização de contexto não são realizadas por elementos de sintaxe que pertencem à segunda categoria, as necessidades totais computacionais para as operações de codificação/decodificação realizadas pelo codec (por exemplo, o codificador/decodificador de vídeo 48) podem ser reduzidas. A este respeito, por exemplo, os requisitos totais de cálculo podem estar dentro de certos limites, que podem manter a complexidade relativamente baixa 5 enquanto ainda permitindo o desempenho de compressão relativamente alto para a dada limitação de complexidade. Como tal, em alguns casos, a primeira categoria de codificação pode ser estruturada de forma a proporcionar eficiência relativaménté elevada enquanto a codificação da 10 segunda categoria pode ser estruturada de modo a proporcionar mais baixa complexidade (por exemplo, ignorando atualização de contexto) . Para a construção da primeira categoria de informação, relacionada com estrutura de codificação quadtree, e transformada e unidades de predição podem ser 15 consideradas juntamente com informação relacionada com predicação, tal como um modo de predição, dados do vetor de movimento e dados de intra-previsão. A construção da segunda categoria pode levar em conta os dados de coeficientes residuais de transformação.
Embora cada um dos elementos de sintaxe de um dado fluxo de bits possa ser codificado e decodificado de acordo com a codificação por entropia de complexidade equilibrada, tal como descrito acima, o método e aparelho da concretização em exemplo podem codificar alguns dos elementos de sintaxe de 25 acordo com a codificação por entropia de complexidade equilibrada e outros dos elementos de sintaxe de acordo com outros sistemas de codificação, tais como, de acordo com os esquemas de codificação aritmética. Assim, a codificação por entropia de complexidade equilibrada de uma concretização 30 exemplificativa da presente invenção pode ser utilizada em conjunto ou em combinação com a aritmética ou outros sistemas de codificação, se assim for desejado.
Um exemplo do categorizador 82 e mecanismo de codificação por entropia 80 pode ser fornecido no codificador/decodificador de vídeo 48. Alternativamente, um exemplo do categorizador 82 e o mecanismo de codificação por entropia 80 pode ser fornecido separadamente, mas pode estar 5 disponível para ajudar com a codificação de vídeo e operações de decodificação realizadas pelo codificador de vídeo/decodificador 48.
Em alguns modos de funcionamento, os coeficientes de transformada de coseno discreta quantificada podem ser 10 binarizados e bins resultantes podem ser codificados com probabilidades iguais (por exemplo, 50 por cento para bins 0 e 50 por cento para bins 1), utilizando o mesmo mecanismo de codificação por entropia (por exemplo, o mecanismo de codificação por entropia 80) tal como é utilizado para o 15 resto dos dados. Os dados podem ser codificados por qualquer mecanismo escolhido (por exemplo, em CABAC H.264/AVC). Quando comparado com o de binarização, por exemplo, CABAC, a binarização de coeficientes DCT pode ser realizada de modo diferente a segmentação dos bins resultantes que têm 20 probabilidades iguais. Consequentemente, quando da atribuição de probabilidades iguais para os bins resultantes dos coeficientes DCT, a parte mais complexa da codificação aritmética adaptativa de contexto de (por exemplo, a atualização de probabilidades para contextos de bins 25 diferentes) pode ser ignorada completamente. Isto pode tornar a complexidade computacional associada com codificação por entropia dos símbolos correspondentes muito menos dependente da taxa de bits e permitir uma operação de baixa complexidade a ser realizada, mesmo com taxas de bit relativamente 30 elevadas.
A Figura 4 ilustra um exemplo de complexidade vs taxa de bits para uma concretização exemplar. A linha tracejada 90 pode indicar um nível máximo desejado de um modo de baixa complexidade de operação. Tal como indicado na Figura 4, através do emprego de um modo de realização de exemplo que categoriza os elementos de sintaxe e, em seguida, codifica cada uma das categorias de modo diferente para 5 reduzir a complexidade, a complexidade computacional, tal como indicado pelo número de coeficientes de transformada de coseno discreta, seja mantida abaixo do nível máximo desejado, utilizando codificação aritmética adaptativa de contexto, ignorando a estimativa de probabilidade para os 10 dados de coeficiente de transformada de coseno discreta de alguns símbolos. Como tal, a Figura 4 contrasta a complexidade computacional como uma função da taxa de bits de vídeo para um sistema convencional que utiliza codificação aritmética única adaptativa de contexto, como mostrado na 15 Figura 8. Na Figura 8, o número de coeficientes de transformada discreta de cosseno é superior e aumenta linearmente com o aumento da taxa de bits para o ponto em que o nível de complexidade máxima desejada para um modo de operação de baixa complexidade (mostrado novamente pela linha 20 tracejada 90) é ultrapassado.
Exemplos das concretizações da presente invenção podem ser implementados de várias maneiras diferentes. Como um exemplo, a binarização de símbolos de dados pode ser realizada utilizando palavras de código de coeficiente DCT 25 definidas para a codificação ou através de outros mecanismos.
Diferentes mecanismos de codificação por entropia adaptativa de contexto podem também ser utilizados (por exemplo, CABAC, Pipe/V2V, etc.) Diferentes unidades de dados podem ser classificadas para o processamento de baixa complexidade com 30 probabilidades constantes também. Em alguns casos, as probabilidades constantes em categorias de processamento de baixa complexidade podem ser definidas como probabilidades iguais (como descrito acima). No entanto, em algumas concretizações alternativas, as probabilidades podem ser definidas de tal forma que um ou mais bins são codificados com probabilidades desiguais. A categorização de dados para processamento de baixa complexidade e processamento de alta 5 complexidade pode variar dependendo de variáveis diferentes, tais como a taxa de bits. Em algumas modalidades, a categorização de elementos de sintaxe pode ser assinalada em bloco, fatia, imagem ou níveis de sequência. Em alguns casos, uma indicação de que elementos- de sintaxe correspondentes 10 devem ser codificados por entropia com alta eficiência ou codificação por entropia com baixa complexidade pode ser assinalada no bloco, fatia, imagem ou sequência de níveis, também.
Algumas concretizações da presente invenção pode, 15 portanto, permitir que a complexidade de um codec de vídeo seja controlada, enquanto ainda permitindo que um nível relativamente elevado de eficiência de compressão sob diferentes requisitos de complexidade computacional. A este respeito, categorizando os elementos de sintaxe com base em 20 suas frequências relativas de ocorrência, operações mais complexas podem ser realizadas em relação a uma menor frequência de ocorrência de símbolos e operações complexas podem ser simplificadas ou omitidas em relação aos símbolos que ocorrem com maior frequência.
A Figura 5 é um fluxograma de um método e um produto de programa de acordo com uma concretização exemplificativa da presente invenção. Deve ser entendido que cada bloco do diagrama de fluxo, e combinações de blocos no diagrama de fluxo, pode ser aplicado por vários meios, tais 30 como hardware, firmware, processador de circuitos, e/ou outro dispositivo associado à execução de software incluindo uma ou mais instruções do programa de computador. Por exemplo, um ou mais dos procedimentos descritos acima, podem ser incorporados por instruções de programa de computador. A este respeito, as instruções de programa de computador que incorporam os procedimentos descritos acima podem ser armazenadas por um dispositivo de memória de um terminal de 5 usuário e executadas por um processador do terminal de usuário. Como será apreciado, as instruções de programa de computador podem ser carregadas em um computador ou outro aparelho programável (por exemplo, hardware) para produzir uma. máquina, de modo quê as instruções que executam no 10 computador ou outro aparelho programável criam meios para a implementação das funções especificadas no bloco ou blocos de fluxograma. Estas instruções de programa de computador podem também ser armazenadas em uma memória não transitória legível por computador que pode dirigir um computador ou outro 15 aparelho programável para funcionar de uma forma particular, de tal modo que as instruções armazenadas na memória legível pelo computador produzem um artigo de fabricação que implementa as funções especificadas no bloco ou blocos de fluxograma. As instruções do programa do computador podem 20 também ser carregadas em um computador ou outro aparelho programável para fazer com que uma série de operações sejam executadas no computador ou outro aparelho programável para produzir um processo implementado por computador de tal modo que as instruções que executam no computador ou outro 25 aparelho programável implementam as funções especificadas no bloco ou blocos de fluxograma.
Por conseguinte, os blocos do fluxograma suportam combinações de meios para desempenhar as funções especificadas e combinações de operações para realizar as 30 funções especificadas. Será também entendido que um ou mais blocos de fluxograma, e combinações de blocos no diagrama de fluxo, podem ser implementados por sistemas de hardware para fins especiais baseados em computador, que executam as funções especificadas, ou combinações de hardware para fins especiais e instruções de computador.
A este respeito, um método de acordo com uma concretização da presente invenção, como mostrado na Figura 5 5, pode incluir categorização de elementos de sintaxe de conteúdo de vídeo com base em uma frequência de ocorrência de elementos de sintaxe no conteúdo do vídeo na operação 110. A categorização pode incluir a definição de pelo menos uma -primeira categoria e uma segunda categoria de símbolos. O 10 método pode ainda incluir a realização de codificação por 1 . . . entropia de símbolos correspondentes à primeira categoria em resposta à operação de atualização de contexto 120, e desviar a atualização de contexto anterior à codificação por entropia de símbolos correspondentes à segunda categoria na operação 15 130.
Em algumas concretizações, determinadas das operações acima referidas podem ser modificadas ou amplificadas, tal como descrito abaixo. Além disso, em algumas concretizações adicionais, operações opcionais podem 20 também ser incluídas (exemplos das quais são mostrados em linhas tracejadas na Figura 5) . Deve ser notado que cada uma das modificações, adições ou amplificações opcionais abaixo pode ser incluída com as operações acima, só ou em combinação , com quaisquer outros entre as características aqui descritas.
A este respeito, por exemplo, o método pode incluir ainda a I * binarização de símbolos visando uma pré-determinada probabilidade antes de ignorar a atualização de contexto na operação 125. Em uma concretização de exemplo, realizar a binarização de símbolos visando uma probabilidade pré- 30 determinada pode incluir a realização de binarização visando uma probabilidade par ou ímpar para cada bin. O método pode ainda incluir a sinalização de alta eficiência ou a codificação por entropia de baixa complexidade de elementos de sintaxe no bloco, fatia, imagem, ou nível de sequência na operação 140. Em alguns casos, o método pode adicionalmente ou alternativamente incluir a sinalização de uma classificação de elementos de sintaxe em um bloco, fatia, 5 imagem, ou nível de sequência na operação 100. Em uma concretização de exemplo, a categorização dos elementos de sintaxe pode incluir a categorização de símbolos tendo uma frequência de ocorrência abaixo de um limiar, como símbolos .de- primeira categoria e categorização de símbolos tendo uma 10 frequência de ocorrência acima do limiar, como símbolos de segunda categoria. Em uma concretização de exemplo, realizar a codificação por entropia de símbolos correspondentes à primeira categoria adicional pode incluir a realização de codificação por entropia após a binarização dos símbolos de 15 dados.
Em uma concretização de exemplo, um aparelho para realizar o método da Figura 5 acima pode compreender um processador (por exemplo, o processador 70), configurado para executar parte ou a cada uma das operações (100-140) 20 descritas acima. 0 processador pode, por exemplo, ser configurado para executar as operações (100-140) através da realização de hardware implementando funções lógicas, a execução de instruções armazenadas, ou a execução de algoritmos para a realização de cada uma das operações. Em 25 alternativa, o aparelho pode compreender meios para realizar cada uma das operações acima descritas. A este respeito, de acordo com uma concretização de exemplo, os exemplos de meios para a realização das operações de 100-140 podem compreender os respectivos, por exemplo, categorizador 82 e mecanismo de 30 codificação por entropia 80. Adicionalmente ou alternativamente, pelo menos, em virtude do fato de que o processador 70 pode ser configurado para controlar ou mesmo ser realizado como o categorizador 82 e o mecanismo de codificação por entropia 80, o processador 70 e/ou um dispositivo ou conjunto de circuitos para a execução de instruções ou execução de um algoritmo de processamento de informação, tal como descrito acima, pode também formar meios 5 de exemplo para a realização de operações de 100-140.
Um exemplo de um aparelho de acordo com uma concretização exemplificativa pode incluir pelo menos um processador e pelo menos uma memória, incluindo o código de programa de computador. A pelo menos uma memória e o código 10 de programa de computador podem ser configurados para, com o pelo menos um processador, fazer com que o aparelho realize as operações de 100-140 (com ou sem as modificações e ampliações descritas acima, em qualquer combinação).
Um exemplo de um produto de programa de computador 15 de acordo com uma concretização exemplificativa pode incluir pelo menos um meio de armazenamento legível por computador, tendo porções de código de programa executáveis por computador armazenadas no mesmo. As porções de código de programa executáveis por computadores podem incluir 20 instruções de programa de código para executar a operação 100-140 (com ou sem as modificações e ampliações descritas acima, em qualquer combinação).
Muitas modificações e outras concretizações das invenções aqui estabelecidas virão a mente de uma pessoa 25 versada na técnica à qual estas invenções pertencem ao ter o benefício dos ensinamentos apresentados nas descrições anteriores e nos desenhos associados. Por conseguinte, é para ser entendido que as invenções não devem ser limitadas às concretizações específicas descritas e que modificações e 30 outras concretizações são destinadas a serem incluídas dentro do escopo das reivindicações anexas. Além disso, embora as descrições anteriores e os desenhos associados descrevam algumas concretizações de exemplo, no contexto de certas combinações de exemplo de elementos e/ou funções, deverá ser apreciado que diferentes combinações de elementos e/ou de funções podem ser proporcionadas por concretizações alternativas sem se afastarem do escopo das reivindicações 5 anexas. A este respeito, por exemplo, diferentes combinações de elementos e/ou funções diferentes daquelas explicitamente descritas acima são também contempladas como pode ser estabelecido em algumas das reivindicações em anexo. Embora termos específicos sejam aqui utilizados, eles são usados em 10 um sentido genérico e descritivo e não para fins de limitação.

Claims (29)

1. Método, caracterizado por compreender: determinar uma frequência de ocorrência de elementos de sintaxe em um fluxo de bits; categorizar uma pluralidade de elementos de sintaxe de conteúdo de vídeo em primeira e segunda categorias com base na frequência de ocorrência, em que elementos de sintaxe que ocorrem mais do que um limiar de frequência de ocorrência são categorizados na segunda categoria e elementos de sintaxe que ocorrem menos do que um limiar de frequência de ocorrência são categorizados na primeira categoria; codificar por entropia símbolos que correspondam à primeira categoria de elementos de sintaxe e que tenham sido submetidos a uma atualização de contexto; e codificar por entropia símbolos que correspondam à segunda categoria de elementos de sintaxe e que desviaram a atualização de contexto.
2. Método, de acordo com a reivindicação 1, caracterizado por compreender adicionalmente fazer com que uma categorização dos elementos de sintaxe seja sinalizada em um nível de sequência, bloco, fatia ou imagem.
3. Método, de acordo com a reivindicação 1 ou 2, caracterizado por compreender adicionalmente a realização de binarização dos símbolos que correspondem à segunda categoria de elementos de sintaxe antes de desviar a atualização de contexto.
4. Método, de acordo com a reivindicação 3, caracterizado por a realização de binarização compreender realizar binarização de modo a atingir uma probabilidade pré-determinada.
5. Método, de acordo com qualquer uma das reivindicações 1 a 4, caracterizado por compreender adicionalmente fazer uma indicação da codificação por entropia ser sinalizada em um nível de sequência, bloco, fatia ou imagem.
6. Método, de acordo com qualquer uma das reivindicações 1 a 5, caracterizado por a categorização da pluralidade de elementos de sintaxe compreender categorizar a pluralidade de elementos de sintaxe com base em uma relação da frequência de ocorrência dos elementos de sintaxe para um limiar predefinido.
7. Método, de acordo com qualquer uma das reivindicações 1 a 6, caracterizado por compreender adicionalmente a realização de binarização dos símbolos que correspondem à primeira categoria de elementos de sintaxe antes da codificação por entropia dos símbolos que correspondem à primeira categoria de elementos de sintaxe.
8. Método, de acordo com qualquer uma das reivindicações 1 a 7, caracterizado por a codificação por entropia de símbolos ser realizada durante a codificação de vídeo.
9. Método, de acordo com qualquer uma das reivindicações 1 a 7, caracterizado por a codificação por entropia de símbolos ser realizada durante a decodificação de vídeo.
10. Método, de acordo com qualquer uma das reivindicações 1 a 7, caracterizado por a codificação por entropia ser uma codificação aritmética.
11. Método, de acordo com qualquer uma das reivindicações 1 a 7, caracterizado por a codificação por entropia ser uma decodificação aritmética.
12. Aparelho, caracterizado por compreender pelo menos um processador e pelo menos uma memória incluindo instruções, a pelo menos uma memória e instruções configuradas para, com o processador, fazerem com que o aparelho pelo menos: determine uma frequência de ocorrência de elementos de sintaxe em um fluxo de bits; categorize uma pluralidade de elementos de sintaxe de conteúdo de vídeo em primeira e segunda categorias com base na frequência de ocorrência, em que elementos de sintaxe que ocorrem mais do que um limiar de frequência de ocorrência são categorizados na segunda categoria e elementos de sintaxe que ocorrem menos do que um limiar de frequência de ocorrência são categorizados na primeira categoria; codifique por entropia símbolos que correspondam à primeira categoria de elementos de sintaxe e que tenham sido submetidos a uma atualização de contexto; e codifique por entropia símbolos que correspondam à segunda categoria de elementos de sintaxe e que desviaram a atualização de contexto.
13. Aparelho, de acordo com a reivindicação 12, caracterizado por a pelo menos uma memória e instruções serem configuradas adicionalmente para, com o processador, fazerem com que o aparelho faça com que uma categorização dos elementos de sintaxe seja sinalizada em um nível de sequência, bloco, fatia ou imagem.
14. Aparelho, de acordo com a reivindicação 12 ou 13, caracterizado por a pelo menos uma memória e instruções serem configuradas adicionalmente para, com o processador, fazerem com que o aparelho realize a binarização dos símbolos que correspondem à segunda categoria de elementos de sintaxe antes de desviar a atualização de contexto.
15. Aparelho, de acordo com a reivindicação 14, caracterizado por a pelo menos uma memória e instruções serem configuradas para, com o processador, fazerem com que o aparelho realize a binarização, realizando a binarização de modo a atingir uma probabilidade pré-determinada.
16. Aparelho, de acordo com qualquer uma das reivindicações 12 a 15, caracterizado por a pelo menos uma memória e instruções serem configuradas adicionalmente para, com o processador, fazerem com que o aparelho faça uma indicação da codificação por entropia ser sinalizada em um nível de sequência, bloco, fatia ou imagem.
17. Aparelho, de acordo com qualquer uma das reivindicações 12 a 16, caracterizado por a pelo menos uma memória e instruções serem configuradas para, com o processador, fazerem com que o aparelho categorize a pluralidade de elementos de sintaxe categorizando a pluralidade de elementos de sintaxe com base em uma relação da frequência de ocorrência dos elementos de sintaxe para um limiar predefinido.
18. Aparelho, de acordo com qualquer uma das reivindicações 12 a 17, caracterizado por a pelo menos uma memória e instruções serem configuradas adicionalmente para, com o processador, fazerem com que o aparelho realize a binarização dos símbolos que correspondem à primeira categoria de elementos de sintaxe antes da codificação por entropia dos símbolos que correspondem à primeira categoria de elementos de sintaxe.
19. Aparelho, de acordo com qualquer uma das reivindicações 12 a 18, caracterizado por a pelo menos uma memória e instruções serem configuradas para, com o processador, fazerem com que o aparelho realize a codificação por entropia de símbolos durante a codificação de vídeo em um codificador de vídeo.
20. Aparelho, de acordo com qualquer uma das reivindicações 12 a 18, caracterizado por a pelo menos uma memória e instruções serem configuradas para, com o processador, fazerem com que o aparelho realize a codificação por entropia de símbolos durante a decodificação de vídeo em um decodificador de vídeo.
21. Aparelho, de acordo com qualquer uma das reivindicações 12 a 18, caracterizado por a pelo menos uma memória e instruções serem configuradas para, com o processador, fazerem com que o aparelho realize uma codificação por entropia que seja uma codificação aritmética.
22. Aparelho, de acordo com qualquer uma das reivindicações 12 a 18, caracterizado por a pelo menos uma memória e instruções serem configuradas para, com o processador, fazerem com que o aparelho realize uma codificação por entropia que seja uma decodificação aritmética.
23. Meio de armazenamento não transitório legível por computador contendo instruções executáveis por computador no mesmo, caracterizado por as ditas instruções, quando executadas, fazerem com que o computador: determine uma frequência de ocorrência de elementos de sintaxe em um fluxo de bits; categorize uma pluralidade de elementos de sintaxe de conteúdo de vídeo em primeira e segunda categorias com base na frequência de ocorrência, em que elementos de sintaxe que ocorrem mais do que um limiar de frequência de ocorrência são categorizados na segunda categoria e elementos de sintaxe que ocorrem menos do que um limiar de frequência de ocorrência são categorizados na primeira categoria; codifique por entropia símbolos que correspondam à primeira categoria de elementos de sintaxe e que tenham sido submetidos a uma atualização de contexto; e codifique por entropia símbolos que correspondam à segunda categoria de elementos de sintaxe e que desviaram a atualização de contexto.
24. Meio de armazenamento não transitório legível por computador contendo instruções executáveis por computador no mesmo, de acordo com a reivindicação 23, caracterizado por as ditas instruções compreenderem adicionalmente instruções para, quando executadas, fazerem com que o computador faça com que uma categorização dos elementos de sintaxe seja sinalizada em um nível de sequência, bloco, fatia ou imagem.
25. Meio de armazenamento não transitório legível por computador contendo instruções executáveis por computador no mesmo, de acordo com a reivindicação 23 ou 24, caracterizado por as ditas instruções compreenderem adicionalmente instruções para, quando executadas, fazerem com que o computador realize a binarização dos símbolos que correspondem à segunda categoria de elementos de sintaxe antes de desviar a atualização de contexto.
26. Meio de armazenamento não transitório legível por computador contendo instruções executáveis por computador no mesmo, de acordo com a reivindicação 25, caracterizado por as ditas instruções compreenderem adicionalmente instruções para, quando executadas, fazerem com que o computador realize a binarização, compreendendo instruções para realizar a binarização de modo a atingir uma probabilidade pré-determinada.
27. Meio de armazenamento não transitório legível por computador contendo instruções executáveis por computador no mesmo, de acordo com qualquer uma das reivindicações 23 a 26, caracterizado por as ditas instruções compreenderem adicionalmente instruções para, quando executadas, fazerem com que o computador faça uma indicação da codificação por entropia ser sinalizada em um nível de sequência, bloco, fatia ou imagem.
28. Meio de armazenamento não transitório legível por computador contendo instruções executáveis por computador no mesmo, de acordo com qualquer uma das reivindicações 23 a 27, caracterizado por as ditas instruções compreenderem adicionalmente instruções para, quando executadas, fazerem com que o computador categorize a pluralidade de elementos de sintaxe com base em uma relação da frequência de ocorrência dos elementos de sintaxe para um limiar predefinido.
29. Meio de armazenamento não transitório legível por computador contendo instruções executáveis por computador no mesmo, de acordo com qualquer uma das reivindicações 23 a 28, caracterizado por as ditas instruções compreenderem adicionalmente instruções para, quando executadas, fazerem com que o computador realize a binarização dos símbolos que correspondem à primeira categoria de elementos de sintaxe antes da codificação por entropia dos símbolos que correspondem à primeira categoria de elementos de sintaxe.
BR112013002029-6A 2010-07-28 2011-07-27 Método, aparelho e meio de armazenamento BR112013002029B1 (pt)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US36831610P 2010-07-28 2010-07-28
US61/368,316 2010-07-28
IB2012014170 2012-02-02

Publications (2)

Publication Number Publication Date
BR112013002029A2 BR112013002029A2 (pt) 2017-09-19
BR112013002029B1 true BR112013002029B1 (pt) 2022-06-28

Family

ID=45529482

Family Applications (1)

Application Number Title Priority Date Filing Date
BR112013002029-6A BR112013002029B1 (pt) 2010-07-28 2011-07-27 Método, aparelho e meio de armazenamento

Country Status (7)

Country Link
US (1) US9036701B2 (pt)
EP (1) EP2599315B1 (pt)
KR (2) KR20130036768A (pt)
CN (1) CN103181167B (pt)
BR (1) BR112013002029B1 (pt)
CA (1) CA2806523C (pt)
WO (1) WO2012014170A1 (pt)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9088796B2 (en) * 2011-11-07 2015-07-21 Sharp Kabushiki Kaisha Video decoder with enhanced CABAC decoding
US9503717B2 (en) * 2012-01-09 2016-11-22 Texas Instruments Incorporated Context adaptive binary arithmetic coding (CABAC) with scalable throughput and coding efficiency
EP2810440A1 (en) * 2012-02-04 2014-12-10 General Instrument Corporation Devices and methods for context reduction in last significant coefficient position coding
US9538172B2 (en) 2012-04-11 2017-01-03 Qualcomm Incorporated Grouping bypass coded syntax elements in video coding
EP3206399A4 (en) * 2014-11-04 2017-10-25 Samsung Electronics Co., Ltd. Probability updating method for binary arithmetic coding/decoding, and entropy coding/decoding apparatus using same
WO2019027074A1 (ko) * 2017-08-04 2019-02-07 엘지전자(주) 멀티 심볼 엔트로피 코딩을 위한 멀티 심볼 매핑을 수행하는 방법 및 장치
US11449713B2 (en) 2018-11-16 2022-09-20 Uatc, Llc Attention based feature compression and localization for autonomous devices
US11461583B2 (en) * 2018-11-16 2022-10-04 Uatc, Llc Binary feature compression for autonomous devices
CN110046159B (zh) * 2019-03-13 2023-04-18 平安科技(深圳)有限公司 银行账号存储方法、装置、计算机设备及存储介质

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6677868B2 (en) * 2001-03-16 2004-01-13 Sharp Laboratories Of America, Inc. Entropy coding with adaptive syntax to replace high probability symbols with lower probabilities symbols
US7599435B2 (en) * 2004-01-30 2009-10-06 Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. Video frame encoding and decoding
US7469070B2 (en) * 2004-02-09 2008-12-23 Lsi Corporation Method for selection of contexts for arithmetic coding of reference picture and motion vector residual bitstream syntax elements
US8401082B2 (en) 2006-03-27 2013-03-19 Qualcomm Incorporated Methods and systems for refinement coefficient coding in video compression
JP4878262B2 (ja) * 2006-10-31 2012-02-15 キヤノン株式会社 エントロピー符号化装置
US8213499B2 (en) * 2007-04-04 2012-07-03 General Instrument Corporation Method and apparatus for context address generation for motion vectors and coefficients
US7777654B2 (en) 2007-10-16 2010-08-17 Industrial Technology Research Institute System and method for context-based adaptive binary arithematic encoding and decoding
JP4962400B2 (ja) * 2008-04-30 2012-06-27 ソニー株式会社 算術復号装置
US7714754B2 (en) * 2008-07-14 2010-05-11 Vixs Systems, Inc. Entropy decoder with pipelined processing and methods for use therewith
JP4896944B2 (ja) 2008-11-13 2012-03-14 株式会社東芝 画像復号装置
WO2011002914A1 (en) * 2009-06-30 2011-01-06 Massachusetts Institute Of Technology System and method for providing high throughput entropy coding using syntax element partitioning
EP2514210A4 (en) 2009-12-17 2014-03-19 Ericsson Telefon Ab L M METHOD AND DEVICE FOR VIDEO CODING
US20120014433A1 (en) * 2010-07-15 2012-01-19 Qualcomm Incorporated Entropy coding of bins across bin groups using variable length codewords

Also Published As

Publication number Publication date
EP2599315B1 (en) 2019-09-04
EP2599315A4 (en) 2014-01-22
CN103181167A (zh) 2013-06-26
CA2806523C (en) 2016-07-05
BR112013002029A2 (pt) 2017-09-19
KR20130036768A (ko) 2013-04-12
WO2012014170A1 (en) 2012-02-02
US9036701B2 (en) 2015-05-19
KR101638300B1 (ko) 2016-07-08
KR20150103044A (ko) 2015-09-09
CA2806523A1 (en) 2012-02-02
EP2599315A1 (en) 2013-06-05
US20120250763A1 (en) 2012-10-04
CN103181167B (zh) 2016-08-03

Similar Documents

Publication Publication Date Title
BR112013002029B1 (pt) Método, aparelho e meio de armazenamento
US20230056351A1 (en) Coded-block-flag coding and derivation
RU2668723C2 (ru) Способ и оборудование для кодирования и декодирования видеосигналов
US20130251028A1 (en) Video encoding and decoding with channel prediction and error correction capability
KR102390162B1 (ko) 데이터 인코딩 장치 및 데이터 인코딩 방법
KR20130129445A (ko) 모션 예측 비디오 블록들의 계층구조
US20210360246A1 (en) Shape adaptive discrete cosine transform for geometric partitioning with an adaptive number of regions
US11682144B2 (en) Techniques and apparatus for inter-channel prediction and transform for point-cloud attribute coding
US9544596B1 (en) Optimized template matching approach to intra-coding in video/image compression
KR20170105129A (ko) 스펙트럼의 피크 위치의 코딩 및 디코딩
JP7162532B2 (ja) ビデオデータに関係する構文要素を表す一連の2値シンボルをコンテキスト適応型2値算術符号化するための方法及び装置
KR101247070B1 (ko) 비디오 디코더 내의 텍스쳐 디코딩 모듈의 버스 트래픽을 감소시키는 방법 및 장치
KR20130046377A (ko) 화소 블록 코딩 및 재구성 방법 및 대응 장치
US9210423B2 (en) Method for coding and an apparatus
WO2022269469A1 (en) Method, apparatus and computer program product for federated learning for non independent and non identically distributed data
KR101540510B1 (ko) 추가적 예측 후보를 이용한 인트라 예측 방법 및 그 장치
WO2024016106A1 (en) Low-complexity enhancement video coding using multiple reference frames
US20240089433A1 (en) Chroma Transform Type Determination
US20230199222A1 (en) Dynamic Bitset Coding
JP2018056957A (ja) 符号化装置、復号装置、符号化方法、及び、復号方法
Chiu et al. Hardware architecture design of hybrid distributed video coding with frame level coding mode selection
CN116324805A (zh) 神经图像压缩中具有替代项的非线性量化
JP2012156575A (ja) 符号化装置、復号装置及びプログラム

Legal Events

Date Code Title Description
B25A Requested transfer of rights approved

Owner name: NOKIA TECHNOLOGIES OY (FI)

B15K Others concerning applications: alteration of classification

Ipc: H04N 7/00 (2011.01)

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]
B15K Others concerning applications: alteration of classification

Free format text: A CLASSIFICACAO ANTERIOR ERA: H04N 7/00

Ipc: H04N 19/13 (2014.01), H04N 19/463 (2014.01), H04N

B15W Others matters related to applications: legal action concerning application

Free format text: INPI NO 52402.011814/2021-83 ORIGEM: JUIZO FEDERAL DA 31A VF DO RIO DE JANEIRO (TRF2) PROCESSO NO: 5118975-86.2021.4.02.5101 MANDADO DE SEGURANCA AUTOR: NOKIA TECHNOLOGIES OY REU(S): DIRETORA DE PATENTES DO INSTITUTO NACIONAL DA PROPRIEDADE INDUSTRIAL

B06A Patent application procedure suspended [chapter 6.1 patent gazette]
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 27/07/2011, OBSERVADAS AS CONDICOES LEGAIS. PATENTE CONCEDIDA CONFORME ADI 5.529/DF, QUE DETERMINA A ALTERACAO DO PRAZO DE CONCESSAO.