BR102013020614B1 - Decodificador e método - Google Patents

Decodificador e método Download PDF

Info

Publication number
BR102013020614B1
BR102013020614B1 BR102013020614-8A BR102013020614A BR102013020614B1 BR 102013020614 B1 BR102013020614 B1 BR 102013020614B1 BR 102013020614 A BR102013020614 A BR 102013020614A BR 102013020614 B1 BR102013020614 B1 BR 102013020614B1
Authority
BR
Brazil
Prior art keywords
data
blocks
decoder
input data
encoded
Prior art date
Application number
BR102013020614-8A
Other languages
English (en)
Inventor
Ossi Kalevo
Tuomas Karkkainen
Original Assignee
Gurulogic Microsystems 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 Gurulogic Microsystems Oy filed Critical Gurulogic Microsystems Oy
Publication of BR102013020614B1 publication Critical patent/BR102013020614B1/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
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
    • H04N21/44008Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving operations for analysing video streams, e.g. detecting features or characteristics in the video stream

Abstract

DECODIFICADOR E MÉTODO. A presente invenção refere-se a um decodificador (10) que decodifica dados de entrada (20) para gerar dados de saída decodificados (30). O decodificador (10) inclui hardware de processamento de dados que é operável: (a) para processar os dados de entrada codificados (20) para extrair dos mesmos a informação de cabeçalho indicativa de dados codificados pertencendo a blocos e/ou pacotes incluídos nos dados de entrada codificados (20), a informação de cabeçalho incluindo dados indicativos de uma ou mais transformações empregadas para codificar e comprimir os dados de blocos e/ou pacotes originais para inclusão como os dados codificados pertencendo aos blocos e/ou pacotes; (b) para preparar um campo de dados em um arranjo de armazenamento de dados para receber o conteúdo de blocos e/ou pacotes decodificados; (c) para recuperar a informação descrevendo a uma ou mais transformações e então aplicar um inverso de uma ou mais transformações para decodificar os dados de blocos e/ou pacotes codificados e comprimidos originais para gerar o conteúdo de blocos e/ou pacotes decodificados correspondente para preencher o campo de dados; e (d) quando os dados de entrada codificados foram pelo menos parcialmente decodificados, produzir dados a partir do campo de dados como os (...).

Description

CAMPO TÉCNICO
A presente descrição refere-se a decodificadores para receber dados de entrada e decodificar os dados de entrada para gerar dados de saída decodificados correspondentes. Além do mais, a presente descrição também refere-se a métodos de decodificar dados de entrada codificados para gerar dados de saída decodificados correspondentes. Além disso, a presente descrição também se refere a produtos de programa de computador gravados em meio de armazenamento de dados legíveis por máquina não transitórios, em que os produtos de programa de computador são executáveis em hardware de computação para implementar os métodos referidos acima.
ANTECEDENTES
O conteúdo dos dados é armazenado e comunicado em uma extensão crescente pela população humana contemporânea, por exemplo, conteúdo de multimídia através da Internet e redes de comunicação sem fio; tal conteúdo de multimídia frequentemente inclui, por exemplo, imagens, vídeo e áudio, mas não está limitado a esses. O conteúdo de dados é armazenado e comunicado entre dispositivos, aplicações de programa de computador, sistemas de mídia e serviços de dados. Durante esse armazenamento e comunicação, surgem situações onde imagens e vídeos são capturados, escaneados, transmitidos, compartilhados, monitorados e impressos. No entanto, tais imagens e vídeos são exigentes com respeito à capacidade de memória de dados e à banda larga do sistema de comunicação utilizado. Quando a banda larga do sistema de comunicação é limitada, tais imagens e vídeos tomam um tempo significativo para se comunicarem. Para endereçar tais requisitos de armazenamento, é prática comum empregar métodos de codificação de imagem e de vídeo que também proporcionam um grau de compressão de dados. Alguns padrões de codificação contemporâneos para imagens e vídeos são providos na tabela 1. TABELA 1: PADRONIZAÇÕES DE CODIFICAÇÃO CONTEMPORÂNEAS
Arquivos de imagem e de áudio tornam-se maiores na medida em que a qualidade da imagem é progressivamente melhorada, por exemplo, pela adição de padrões de alta definição (HD) e de alta faixa dinâmica (HDR). No entanto, Imagens tridimensionais (3-D), vídeos e áudio estão ganhando popularidade crescente que demanda métodos de codificação e de- codificação correspondentemente mais eficazes em codificadores e decodifi- cadores, a saber, "codecs", para lidar com as quantidades de dados aumentadas associadas a serem comunicados e armazenados. No entanto, é altamente desejável que os métodos de codificação que proporcionam um grau de compressão de dados devam ser substancialmente sem perda em relação ao conteúdo da informação quando gerando os dados comprimidos.
Codificadores/decodificadores convencionais são descritos em pedidos de patentes publicadas e patentes concedidas, por exemplo, como nas US5832130, US7379496 e US7676101. Em geral, os codificado- res/decodificadores conhecidos não são capazes de codificar eficazmente áreas extensas de imagens com parâmetros substancialmente constantes enquanto sendo simultaneamente capazes de codificar áreas de imagens altamente espacialmente detalhadas. É prática comum empregar compensação de movimento em uma forma de previsão e métodos de codificação de erro de previsão no uso de transformações, por exemplo, transformação de cosseno discreta (DCT) e transformações de ondas pequenas. Estas transformações empregam um processo em que porções de uma determinada imagem, por exemplo, uma imagem de fotografia ou uma imagem formando uma parte de uma sequência de vídeo, são divididas em blocos que são então submetidos a processos de codificação. Os blocos são, por exemplo, elementos de imagem 8x8, elementos de imagem 4x4 ou similar. Tais blocos relativamente pequenos são empregados porque os tamanhos grandes dos blocos resultam em processos de codificação ineficazes, embora blocos de elementos de imagem 16x16 sejam algumas vezes empregados. De acordo com abordagens contemporâneas conhecidas para codificação de imagem, quando múltiplos tamanhos de blocos diferentes são usados para codificação, é prática comum utilizar uma pequena variação nos tamanhos dos blocos; além do mais, os tamanhos dos blocos são selecionados baseados em quanto bom pode ser o movimento compensado em uma área de bloco associada ou baseados em um parâmetro de qualidade de codificação, por exemplo, um parâmetro de qualidade alvo. Em geral, a qualidade de imagem codificada mais alta requer blocos pequenos que resultem em menos compressão de dados. Certos tipos de codificação contemporânea podem mesmo resultar em um aumento no tamanho dos dados, quando características de correção de erro tais como códigos de paridade e códigos de correção de erro são incluídos.
A partir do descrito acima, será apreciado que prover compressão de dados de conteúdo de dados, por exemplo, de imagens e de vídeos, mas não limitados a esses, enquanto preservando a qualidade do conteúdo de dados é um problema contemporâneo que não é endereçado adequadamente pelos codificadores e decodificares conhecidos, a despeito de uma grande variedade de codificadores/decodificadores que foram desenvolvidos durante as décadas recentes.
Em um pedido PCT publicado WO2010/039822 ("Transformações Usando Codificação de Vídeo Maior do que 4x4 e 8x8", Applicant Qualcomm Inc.), é descrito um sistema de processamento de vídeo, um método e um sistema para aplicar transformações maiores do que 8x8 e transformações não retangulares, e gerar elementos de sintaxe de tamanho de transformação indicativos das transformações para decodificação de vídeo. O elemento de sintaxe de transformação é opcionalmente gerado por um codificador baseado em um tamanho de bloco de previsão de um bloco de vídeo e os conteúdos do bloco de vídeo. Além do mais, o elemento de sintaxe de tamanho de transformação pode ser gerado de acordo com um conjunto de regras para selecionar tamanhos de transformação de 4x4, 8x8 e maiores durante um processo de codificação. Um decodificador opcionalmente realiza uma transformação inversa baseado no elemento de sintaxe de tamanho de transformação e nas regras usadas pelo codificador. Os elementos de sintaxe de tamanho de transformação são transmitidos opcionalmente ao decodificador como parte do fluxo de bits de vídeo codificados.
SUMÁRIO
A presente invenção procura proporcionar um decodificador para decodificar dados de entrada codificados e gerar dados de saída decodificados correspondentes, em que os dados de saída decodificados são descomprimidos com relação aos dados de entrada codificados sem qualquer perda substancial de qualidade que ocorre durante a decodificação; os dados codificados são opcionalmente qualquer tipo de dados, por exemplo, pelo menos um de: dados de imagem, dados de vídeo, dados de áudio, dados econômicos, dados de máscara, dados sismográficos, dados convertidos de analógicos para digitais (ADC), dados de sinais biomédicos, dados texturais, dados de calendário, dados matemáticos, dados binários, mas não limitados aos mesmos.
A presente invenção também procura proporcionar um método para decodificar dados de entrada codificados e gerar dados de saída decodificados correspondentes, em que os dados de saída decodificados são descomprimidos com relação aos dados de entrada codificados sem qualquer perda substancial de qualidade que ocorre durante a decodificação.
De acordo com um primeiro aspecto, é proporcionado um método de decodificar codificar dados de entrada como reivindicado na reivindicação 1 anexa: é proporcionado um método de decodificar dados de entrada codificados para gerar dados de saída decodificados correspondentes, ca- racterizado em que o método inclui as etapas de: (a) processar os dados de entrada codificados para extrair dos mesmos a informação de cabeçalho indicativa de dados codificados pertencendo a blocos e/ou pacotes incluídos nos dados de entrada codificados, a informação de cabeçalho incluindo dados indicativos de uma ou mais transformações empregadas para codificar e comprimir dados de blocos e/ou pacotes originais para inclusão como os dados codificados pertencendo aos blocos e/ou pacotes; (b) preparar um campo de dados em um arranjo de armazenamento de dados para receber conteúdo de blocos e/ou pacotes decodificado; (c) recuperar informação descrevendo a uma ou mais transformações e então aplicar um inverso de uma ou mais transformações para decodificar os dados de bloco e/ou pacote codificados e comprimidos originais para gerar o conteúdo do bloco e/ou pacote decodificado correspondente para preencher o campo de dados; (d) dividir e/ou combinar os blocos e/ou pacotes no campo de dados de acordo a informação de divisão e/ou combinação incluída nos dados de entrada codificados; (e) quando os dados de entrada codificados foram pelo menos parcialmente decodificados, produzir os dados a partir do campo de dados como os dados de saída decodificados.
A invenção é vantajosa em que o método possibilita que os dados de entrada codificados sejam decodificados e descomprimidos em um modo eficaz, sem perda substancial de qualidade do conteúdo presente nos dados de entrada codificados.
Os dados codificados são beneficamente qualquer tipo de dados, por exemplo, incluindo pelo menos um de dados de imagem, dados de vídeo, dados de áudio, dados econômicos, dados de máscara, dados sismográficos, dados convertidos de analógicos para digitais (ADC), dados de sinais biomédicos, dados texturais, dados de calendário, dados matemáticos, mas não limitados a esses.
Opcionalmente, o método inclui proporcionar os dados codifica- dos a partir de pelo menos uma das seguintes fontes: um dispositivo de memória de dados, através de uma rede de comunicação, um cartão de memória, discos de memória de dados, redes de comunicação de área local (LANs), diretamente a partir de um codificador.
Opcionalmente, o método inclui a busca de informação suplementar a partir de um arranjo de base de dados para uso quando se executa o inverso de uma ou mais transformações, a informação suplementar incluindo pelo menos um de: algoritmos, regras, um ou mais parâmetros de transformação.
Opcionalmente, o método inclui blocos e/ou pacotes de decodifi- cação incluindo uma série temporal de itens de conteúdo de dados, em que a subdivisão dos blocos de um determinado item de conteúdo de dados na série depende do conteúdo presente em um ou mais itens de conteúdo de dados que precedem o determinado item de conteúdo de dados dentro da sequência temporal de itens de conteúdo de dados; opcionalmente, os itens de conteúdo de dados incluem pelo menos um de: dados de imagem, dados de vídeo, dados de áudio, dados econômicos, dados de máscara, dados sismográficos, dados convertidos de analógicos para digitais (ADC), dados de sinais biomédicos, dados texturais, dados de calendário, dados matemáticos, mas não limitados a esses.
Mais opcionalmente, o método inclui ainda recuperar a informação de cabeçalho a partir de dados de entrada codificados indicativos do arranjo de base de dados para possibilitar a decodificação dos dados de entrada codificados para acessar a informação suplementar usada quando codificando precedentemente os dados de entrada.
Opcionalmente, o método inclui o emprego para o inverso de uma ou mais transformações inversas de um ou mais de: referência de base de dados, valor DC, cursor, escala, linha, multinível, inalterado, interpolação, extrapolação, DCT, modulação de código de pulso (PCM), DPCM, RLE, SR- LE, EM, LZO, VLC, codificação de Huffman, codificação aritmética, codificação de faixa, codificação de transformação, codificação delta, codificação ODelta, RLE específico de bzip2.
Opcionalmente, o método inclui a decodificação de pelo menos um de: dados de imagem, dados de vídeo, dados de áudio, dados econômicos, dados de máscara, dados sismográficos, dados convertidos de analógicos para digitais (ADC), dados de sinais biomédicos, dados texturais, dados de calendário, dados matemáticos, dados binários, mas não limitados a esses.
De acordo com um segundo aspecto, é provido um produto de programa de computador gravado em meios de armazenamento legíveis por máquina não transitórios, caracterizado em que o produto de programa de computador é executável em hardware de computação para executar um método de acordo com o primeiro aspecto da invenção.
De acordo com um terceiro aspecto, é provido uma aplicação de programa de computador para um dispositivo de comunicação sem fio móvel, caracterizado em que a aplicação de programa de computador inclui um produto de programa de computador de acordo com o segundo aspecto da invenção.
De acordo com um quarto aspecto, é provido um decodificador operável para decodificar dados de entrada para gerar dados de saída de-codificados correspondentes, caracterizado em que o decodificador inclui hardware de processamento de dados que é operável: (a) para processar os dados de entrada codificados para extrair dos mesmos a informação de cabeçalho indicativa de dados codificados pertencendo a blocos e/ou pacotes incluídos nos dados de entrada codificados, a informação de cabeçalho incluindo dados indicativos de uma ou mais transformações empregadas para codificar e comprimir os dados de blocos e/ou pacotes originais para inclusão como os dados codificados pertencendo aos blocos e/ou pacotes; (b) para preparar um campo de dados em um arranjo de arma-zenamento de dados para receber o conteúdo de blocos e/ou pacotes deco-dificados; (c) para recuperar a informação descrevendo a uma ou mais transformações e então aplicar um inverso de uma ou mais transformações para decodificar os dados de blocos e/ou pacotes codificados e comprimidos originais para gerar o conteúdo de blocos e/ou pacotes decodificados cor-respondentes para preencher o campo de dados; (d) para dividir e/ou combinar blocos e/ou pacotes no campo de dados de acordo com a informação de divisão e/ou combinação incluída nos dados de entrada codificados; e (e) quando os dados de entrada codificados foram pelo menos parcialmente decodificados, produzir dados a partir do campo de dados como os dados de saída decodificados.
Os dados codificados são beneficamente qualquer tipo de dados, por exemplo, pelo menos um de: dados de imagem, dados de vídeo, dados de áudio, dados econômicos, dados de máscara, dados sismográficos, dados convertidos de analógicos para digitais (ADC), dados de sinais biomédi- cos, dados texturais, dados de calendário, dados matemáticos, dados binários, mas não limitados a esses.
Opcionalmente, o decodificador é implementado para receber os dados codificados a partir de pelo menos uma das seguintes fontes: um dispositivo de memória de dados, através de uma rede de comunicação, um cartão de memória, discos de memória de dados, redes de comunicação de área local (LANs), diretamente a partir de um codificador.
Opcionalmente, o decodificador é implementado de modo que o hardware de processamento de dados é implementado usando hardware de computação operável para executar um produto de programa de computador.
Opcionalmente, o decodificador é operável para usar um inverso de uma ou mais transformações para descomprimir o conteúdo associado com os blocos e/ou pacotes, de modo que os dados de saída decodificados são maiores em tamanho do que os dados de entrada codificados a serem decodificados.
Opcionalmente, o decodificador é implementado, de modo que os blocos e/ou pacotes são subdivididos e/ou combinados de modo que pelo menos um de seus parâmetros representativos descrevendo seu conteúdo seja substancialmente plano dentro de seus blocos e/ou pacotes subdivididos e/ou combinados. Mais opcionalmente, quando o decodificador está em operação, o pelo menos um parâmetro corresponde a uma cor dos blocos subdivididos e/ou combinados.
Opcionalmente, o decodificador é implementado de modo que os blocos e/ou pacotes incluem uma série de itens de conteúdo de dados, em que a subdivisão dos dados de entrada correspondendo a um determinado item de conteúdo para formar a pluralidade de blocos correspondentes depende do conteúdo presente em um ou mais itens de conteúdo de dados que precedem o determinado item de conteúdo de dados dentro da sequência temporal de itens de conteúdo de dados; opcionalmente, os itens de conteúdo de dados incluem pelo menos um de: dados de imagem, dados de vídeo, dados de áudio, dados econômicos, dados de máscara, dados sismográficos, dados convertidos de analógicos para digitais (ADC), dados de sinais biomédicos, dados texturais, dados de calendário, dados matemáticos, mas não limitados a esses.
Opcionalmente, o decodificador é operável para recuperar a in-formação de cabeçalho para os dados transformados para gerar os dados de saída decodificados, em que a informação de cabeçalho inclui informação indicativa de uma ou mais transformações empregadas por um codificador que gerou os dados de entrada codificados.
Opcionalmente, o decodificador é operável para buscar a informação suplementar a partir de um arranjo de base de dados para uso quando se executa o inverso de uma ou mais transformações, a informação suplementar incluindo pelo menos um de algoritmos, regras, um ou mais parâmetros de transformação. Mais opcionalmente, o decodificador é operável para recuperar a informação de cabeçalho a partir dos dados de entrada codificados em um modo indicativo do arranjo de base de dados para possibilitar a decodificação dos dados de entrada codificados para acessar a informação suplementar usada quando codificando ou decodificando anteriormente os dados de entrada codificados.
Opcionalmente, o decodificador é operável para empregar o in- verso de uma ou mais transformações de um ou mais de: referência de base de dados, valor DC, cursor, escala, linha, multinível, inalterado, interpolação, extrapolação, DCT, modulação de código de pulso (PCM), DPCM, RLE, SR- LE, EM, LZO, VLC, codificação de Huffman, codificação aritmética, codificação de faixa, codificação de transformação, codificação delta, codificação ODelta, RLE específico de bzip-2.
Opcionalmente, o decodificador é operável para decodificar pelo menos um de: dados de imagem, dados de vídeo, dados de áudio, dados econômicos, dados de máscara, dados sismográficos, dados convertidos de analógicos para digitais (ADC), dados de sinais biomédicos, dados texturais, dados de calendário, dados matemáticos, dados binários.
De acordo com um quinto aspecto, é provido um produto de consumo eletrônico operável para receber e/ou armazenar dados de entrada, caracterizado em que o produto de consumo eletrônico inclui um decodifica- dor de acordo com o quarto aspecto para decodificar os dados de entrada para gerar o conteúdo decodificado para prover a pelo menos um usuário do produto de consumo.
Opcionalmente, o produto de consumo eletrônico é pelo menos um de: um telefone móvel, um telefone celular, um computador tablet, um computador phablet, uma televisão, um dispositivo de tocador de mídia portátil, uma câmera, um computador pessoal.
De acordo com um sexto aspecto, é proporcionado um método de decodificar dados de entrada codificados para gerar dados de saída decodificados correspondentes, caracterizado em que o método inclui as etapas de: (a) processar os dados de entrada codificados para extrair dos mesmos a informação de cabeçalho indicativa de dados codificados pertencendo a blocos e/ou pacotes incluídos nos dados de entrada codificados, a informação de cabeçalho incluindo dados indicativos de uma ou mais transformações empregadas para codificar e comprimir dados de blocos e/ou pacotes originais para inclusão como os dados codificados pertencendo aos blocos e/ou pacotes; (b) preparar um campo de dados em um arranjo de armazenamento de dados para receber conteúdo de blocos e/ou pacotes decodificado; (c) recuperar informação descrevendo a uma ou mais transformações e então aplicar um inverso de uma ou mais transformações para decodificar os dados de bloco e/ou pacote codificados e comprimidos originais para gerar o conteúdo do bloco e/ou pacote decodificado correspondente para preencher o campo de dados; (d) buscar informação suplementar a partir de um arranjo de base de dados para uso quando se executa o inverso de uma ou mais transformações, a informação suplementar incluindo pelo menos um de: algoritmos, regras, um ou mais parâmetros de transformação; e (e) quando os dados de entrada codificados foram pelo menos parcialmente decodificados, produzir dados a partir do campo de dados como os dados de saída decodificados.
De acordo com um sétimo aspecto, é provido um decodificador operável para decodificar dados de entrada para gerar dados de saída de-codificados correspondentes, caracterizado em que o decodificador inclui hardware de processamento de dados que é operável: (a) para processar os dados de entrada codificados para extrair dos mesmos a informação de cabeçalho indicativa de dados codificados pertencendo a blocos e/ou pacotes incluídos nos dados de entrada codificados, a informação de cabeçalho incluindo dados indicativos de uma ou mais transformações empregadas para codificar e comprimir os dados de blocos e/ou pacotes originais para inclusão como os dados codificados pertencendo aos blocos e/ou pacotes; (b) para preparar um campo de dados em um arranjo de arma-zenamento de dados para receber o conteúdo de blocos e/ou pacotes deco-dificado; (c) para recuperar a informação descrevendo a uma ou mais transformações e então aplicar um inverso de uma ou mais transformações para decodificar os dados de blocos e/ou pacotes codificados e comprimidos originais para gerar o conteúdo de blocos e/ou pacotes decodificados cor- respondentes para preencher dito campo de dados; (d) para buscar a informação suplementar a partir de um arranjo de base de dados para uso quando se executa o inverso de uma ou mais transformações, a informação suplementar incluindo pelo menos um de: al-goritmos, regras, um ou mais parâmetros de transformação; e (e) quando os dados de entrada codificados foram pelo menos parcialmente decodificados, produzir dados a partir do campo de dados como os dados de saída decodificados.
Será apreciado que os aspectos da invenção são suscetíveis de serem combinados em várias combinações sem sair do escopo da invenção como definido pelas reivindicações anexas.
DESCRIÇÃO DOS DIAGRAMAS
As modalidades da presente descrição serão agora descritas, a título de exemplo somente, com referência aos seguintes diagramas, em que: (f) figura 1 é uma ilustração esquemática de uma modalidade de um codificador; a figura 2 é um fluxograma de etapas de um método de decodificar codificar dados de entrada representativos de pelo menos um item do conteúdo de dados para gerar dados de saída codificados correspondentes, em que os dados de saída codificados são descomprimidos com relação aos dados de entrada codificados sem perda substancial de qualidade que ocorre durante a codificação; o item do conteúdo de dados inclui beneficamente pelo menos um de: dados de imagem, dados de vídeo, dados de áudio, dados econômicos, dados de máscara, dados sismográficos, dados convertidos de analógicos para digitais (ADC), dados de sinais biomédicos, dados texturais, dados de calendário, dados matemáticos, mas não limitados a esses; e (g) figura 3 é uma divisão exemplar de uma imagem em áreas cor-respondendo a blocos para decodificação usando um método cujas etapas são ilustradas na figura 2, embora tal divisão também seja aplicável a outros tipos de conteúdo de dados; (h) figura 4 é um exemplo da partição inicial de uma imagem exemplar a ser decodificada usando os métodos das modalidades; (i) figura 5 é um exemplo de divisão de uma imagem a ser decodi-ficada usando os métodos das modalidades; (j) figura 6 é um exemplo de uma imagem decodificada; e (k) figura 7 é um dispositivo exemplar em que o método de decodi- ficação pode ser executado.
Nos diagramas anexos, um número sublinhado é empregado para representar um item sobre o qual o número sublinhado é posicionado ou um item ao qual o número sublinhado é adjacente. Um número não sublinhado refere-se a um item identificado por uma linha ligando o número não sublinhado ao item. Quando um número é não sublinhado e acompanhado por uma seta associada, o número não sublinhado é usado para identificar um item geral para o qual a seta está apontando.
DESCRIÇÃO DAS MODALIDADES
Na visão geral, a presente invenção refere-se a decodificadores e métodos associados de decodificar dados de entrada para gerar dados de saída decodificados correspondentes. Os dados codificados são opcionalmente qualquer tipo de dados, por exemplo, pelo menos um de: dados de imagem, dados de vídeo, dados de áudio, dados econômicos, dados de máscara, dados sismográficos, dados convertidos de analógicos para digitais (ADC), dados de sinais biomédicos, dados texturais, dados de calendário, dados matemáticos, dados binários, mas não limitados a esses. O método refere-se ao recebimento de dados de entrada codificados, representativos de uma ou mais imagens e/ou um ou mais sinais de áudio, e então ao processamento dos dados de entrada codificados executando as etapas de: (l) interpretar a informação de cabeçalho incluída nos dados de entrada codificados; (m) ) identificar a informação de bloco e/ou pacote presente nos dados de entrada codificados; (n) i) preencher o campo de dados com blocos e/ou pacotes cor-respondendo à informação de bloco ou pacote identificada; (o) ) identificar uma ou mais transformações que foram usadas para gerar a informação de bloco e/ou pacote; e (v) aplicar um inverso de uma ou mais transformações identificadas para decodificar a informação de bloco e/ou pacote para gerar dados decodificados para preencher o campo de dados com a informação de bloco e/ou pacote decodificada, deste modo provendo os dados de saída decodificados mencionados acima.
Opcionalmente, após executar a etapa (iii), se for verificado nos dados de entrada codificados que um determinado bloco ou pacote foi dividido e/ou combinado, os blocos ou pacotes preenchidos no campo de dados são divididos e/ou combinados de modo correspondente, tal aspecto possibilita que o campo de dados seja configurado com um gabarito arbitrário de blocos ou pacotes que são subsequentemente emendados, por exemplo, apropriadamente divididos e/ou combinados, durante a decodificação dos dados de entrada codificados.
Durante a codificação anterior para gerar os dados de entrada codificados utilizando um método de codificação implementado em um codi-ficador, uma seleção dos blocos é determinada por uma facilidade com que as áreas correspondendo aos blocos podem ser codificadas; por exemplo, blocos maiores são empregados para áreas de uma ou mais imagens que têm um valor paramétrico associado substancialmente constante, a saber, são "lisos", e os blocos menores são empregados para áreas de uma ou mais imagens que são difíceis de codificar por conta de trocas espaciais relativamente abruptas nos valores paramétricos associados para as áreas. Os parâmetros pertencem, opcionalmente a um ou mais de: cor, iluminação, valor paramétrico de cursor, padrão repetitivo. A facilidade de codificação corresponde, por exemplo, a pelo menos um parâmetro associado com uma determinada área sendo substancialmente constante dentro da determinada área, por exemplo, substancialmente constante dando cor, amplitude, resistência, número ou código dentro de determinada área. Além do mais, o método de codificação também emprega blocos maiores para áreas estacionárias em sequências de vídeo de imagens, ou para grupos de áreas nas se- quências de vídeo de imagens que estão se movendo similarmente, a saber, blocos que correspondem a objetos fixos. Os blocos são opcionalmente retilíneos em relação às áreas de uma ou mais imagens que eles representam, por exemplo, elementos de 64x64, elementos de 32x16, elementos de 4x20, elementos de 10x4, elementos de 1x4, elementos de 3x1, elementos de 8x8, elemento de 1x1 e assim por diante; opcionalmente, os elementos correspondem a pixels presentes na uma ou mais imagens, mas podem ser submetidos a operações de escalonamento durante a codificação, a saber, casa elemento correspondendo a uma pluralidade correspondente de pixels.
No entanto, outras formas de blocos são opcionalmente empregadas, por exemplo, blocos elípticos, blocos circulares e assim por diante. Além do mais, por analogia, o método de codificação também pode ser aplicado para codificar um ou mais sinais de áudio, em que o um ou mais sinais de áudio são subdivididos e/ou combinados em pacotes de comprimento temporal variável, dependendo de uma natureza dos sinais de áudio correspondendo à mesma, e os pacotes são então codificados para gerar dados de saída comprimidos codificados; os pacotes são parecidos com os blocos mencionados acima, mas pertencem a áudio em vez da informação de imagem. O método de codificação é capaz de codificar simultaneamente tanto a informação de áudio como a informação de imagem, por exemplo, como um conteúdo de multimídia. No entanto, será apreciado que as modalidades da presente invenção não estão limitadas ao processamento de dados de imagem, de vídeo e/ou de áudio, mas podem ser aplicadas a outros tipos de itens de conteúdo de dados, por exemplo, pelo menos um de: dados de ima-gem, dados de vídeo, dados de áudio, dados econômicos, dados de máscara, dados sismográficos, dados convertidos de analógicos para digitais (ADC), dados de sinais biomédicos, dados texturais, dados de calendário, dados matemáticos, dados binário, mas não limitados a esses.
Durante o processamento das áreas de uma ou mais imagens, alternativamente, ou adicionalmente outros tipos de itens de conteúdo de dados, nos blocos correspondentes, o método de codificação inclui verificar uma qualidade de representação de informação provida pelos blocos com relação ao detalhe correspondente em uma ou mais imagens para computar um índice de qualidade correspondente; em um evento em que o índice de qualidade computado indica, quando comparado contra um limiar de qualidade de referência, que uma seleção de tamanhos de bloco foi empregada de modo que a qualidade de representação de dados provida pelos blocos é insuficiente, o método de codificação interage de volta e usa blocos progressivamente menores, alternativamente de forma progressiva os blocos maiores por meio de combinação. Se ele melhora a eficácia de compressão e não deteriora a reconstrução significativamente, até que o índice de qualidade indique que a qualidade de representação é encontrada como definido pelo limiar de qualidade de referência. Por tal abordagem, é possível obter compressão de dados durante a codificação que é substancialmente sem perda, dependendo da escolha do valor limiar para a qualidade de representação de informação. Opcionalmente, o limiar de qualidade de referência é feito dinamicamente variável, dependendo do conteúdo presente na uma ou mais imagens; por exemplo, quando a uma ou mais imagens é uma parte da sequência de vídeo onde existe atividade caótica rápida, o limiar de qualidade de referência pode ser relaxado durante a atividade caótica para possibilitar que um grau aprimorado de compressão de dados seja obtido. A atividade caótica pode ser, por exemplo, aspectos aleatórios tais como fluxo de águas turbulentas, chamas, queda de neve, ondas de fumaça, ondas oceânicas, e assim por diante, em que a perda de informação não é prontamente discernível quando os dados codificados são subsequentemente decodificados em um decodificador.
A determinação dos blocos no codificador mencionado acima pode ser baseada opcionalmente em um ou mais critérios listados na tabela 2: TABELA 2: SELEÇÃO DIVIDIDA E/OU SELEÇÃO COMBINADA DE BLOCOS DURANTE COD FICAÇÃO DE IMAGEM
Opcionalmente, as previsões na tabela 2 são baseadas em re- gras conhecidas empregadas quando se codifica uma ou mais imagens. Al-ternativamente, as previsões na tabela 2 são baseadas em informação de configuração provida, por exemplo, como provida a partir de referências de base de dados selecionadas, de direções de previsão, de movimentos de coordenadas de bloco dentro de uma ou mais imagens, e assim por diante. Um uso de uma variação ou um desvio-padrão é uma abordagem empregada para prover a compressão de informação descrevendo uma relação mútua de elementos incluídos dentro de um determinado bloco correspondente. Em muitas situações, as previsões de dados de bloco com a codificação associada são por si mesmas suficientes quando realizando a codificação, mas é opcionalmente desejável incluir dados de erro de previsão de código dentro da previsão para melhorar uma precisão da previsão. Em um exemplo simples de codificação, um método de previsão de dados simples é empregado, por exemplo, um valor médio, a saber, valor "DC", de pixels ou elementos dentro de um determinado bloco a ser liberado nos dados de saída codificados.
A divisão de áreas, alternativamente a combinação de áreas, de uma ou mais imagens providas como dados de entrada a um codificador implementando o método mencionado acima é opcionalmente implementada de acordo com qualquer modo que proporcione tanto compressão como também manter substancialmente a qualidade da imagem, a saber, é substancialmente sem perda durante a codificação. O método aplica várias estratégias para tal divisão e/ou combinação de áreas. Por exemplo, se um determinado bloco inclui informação considerável, ele é opcionalmente dividido em uma pluralidade de blocos pequenos correspondentes que são relativamente "lisos", alternativamente, opcionalmente combinados em blocos maio- res correspondentes, que são relativamente "lisos", a saber, substancialmente constantes, em relação a seu conteúdo de modo que eles individualmente incluem relativamente pouca informação. Quando o método de codificação é aplicado a pelo menos uma ou mais imagens e/ou um ou mais sinais de áudio, a qualidade da codificação e as imprecisões nos dados de saída codificados são opcionalmente empregadas para controlar um modo no qual a divisão, alternativamente a combinação, até das imagens de entrada e sinais de entrada de áudio nos blocos e pacotes, respectivamente, ocorrer. No entanto, será apreciado que outros tipos de itens de conteúdo de dados podem ser processados de um modo similar, por exemplo, pelo menos um de: dados de imagem, dados de vídeo, dados de áudio, dados econômicos, dados de máscara, dados sismográficos, dados convertidos de análogos para digitais (ADC), dados de sinais biomédicos, dados texturais, dados de calendário, dados matemáticos, mas não limitados a esses. Opcionalmente, quando uma determinada imagem de dados é dividida, alternativamente, combinada, em áreas e blocos correspondentes, o método de codificação analisa os blocos deste modo gerados para determinar se ou não quaisquer dos blocos podem ser combinados juntos, submetidos aos critérios de qualidade mencionados acima, a fim de obter um grau maior de compressão de dados nos dados de saída codificados. No descrito acima, os dados de saída codificados incluem informação associada com os blocos que define os locais de suas áreas correspondentes em suas imagens originais nos dados de entrada a serem codificados.
O método emprega beneficamente múltiplos métodos de modificação de entropia e de codificação, a saber, transformações, quando codifica e comprime os dados descrevendo blocos de dados. Por exemplo, transformações diferentes são usadas para blocos diferentes de uma determinada imagem, quando desempenho de codificação e compressão favorável é deste modo obtido, dependendo do conteúdo da informação dos blocos diferentes. Beneficamente, a otimização de RD é empregada como um critério de qualidade quando se processa os blocos de dados. A informação descrevendo a pluralidade de transformações empregadas quando se codifica os blocos é comunicada nos dados de saída codificados; esta informação é tanto intrinsecamente incluída nos dados de saída codificados, ou os dados de saída incluem uma referência a uma ou mais bases de dados para onde a informação descrevendo as transformações utilizadas pode ser obtida. Os métodos de codificação que são empregados beneficamente incluem um ou mais de: multinível, linha, escala, cursor, interpolação, extrapolação, inalterada, estimativa de movimento, SRLE, EM, ODelta e codificação de faixa, como será elucidado em maior detalhe posteriormente. A divisão de blocos Init (inicialização) também é opcionalmente beneficamente empregada.
Quando se codifica a uma ou mais imagens presentes nos dados de entrada a serem codificados usando o método, os dados associados com as imagens de entrada são beneficamente reduzidos, por exemplo, reduzidos nas relações de 2x1: 1,2x2: 1,1x2: 1,4x1:1, ou similarmente quantificados antes de serem submetidos aos métodos de codificação mencionados acima. Opcionalmente, tal redução é realizada em resposta a uma qualidade desejada de codificação desejada nos dados de saída codificados comprimidos gerados a partir da aplicação dos métodos de codificação. Opcionalmente, os blocos maiores processados pelo método de codificação são menos quantificados do que os blocos menores; em outras palavras, o grau de quantificação empregado é opcionalmente diminuído na medida em que os tamanhos dos blocos são aumentados. Opcionalmente, durante a codificação, o fator de escalonamento para a redução empregada é feito dinamicamente variável, por exemplo, em resposta a uma natureza do conteúdo em uma sequência de imagens, por exemplo, vídeo, a ser codificada.
Durante a codificação de blocos de acordo com o método de co-dificação, cada bloco tem vários parâmetros que descrevem seu conteúdo. Estes parâmetros são transportados quando codificando através de vários "canais". Por exemplo, canais coloridos descrevendo os blocos de uma imagem podem incluir um ou mais de: preto/branco (B/W), Y, U, V, vermelho (R), verde (G), azul (B), ciano (C), magenta (M), Y e K. Além do mais, as imagens de entrada para codificação e os blocos podem ser opcionalmente processados quando se executa o método de codificação usando uma vari- edade de cores potenciais ou formatos de pixels, por exemplo, os padrões e formatos contemporâneos Y, YUV420, YUV422, YUV444, RGB444, G e CMYK. Além do mais, o formato é opcionalmente planar, intercalado, linha planar e assim por diante. Além do mais, o método de codificação é beneficamente operável para trocar o formato das imagens e/ou dos blocos quando realizando atividades de codificação; por exemplo, uma imagem original está em um formato RGB intercalado e é codificada usando o método de codificação para gerar dados de saída codificados no formato YUV420 ou vice-versa.
A profundidade de bit, a saber, a faixa dinâmica de um pixel quando implementando o método de codificação mencionado acima, está beneficamente em uma faixa de resolução de 1-bit a 64-bit. Opcionalmente, cores de pixels diferentes ou canais de áudio podem ser codificados com resoluções mutuamente diferentes, com a condição de que os critérios de qualidade de codificação e o desempenho de compressão do método de codificação sejam satisfeitos.
Os métodos de codificação são opcionalmente implementados usando parâmetros de codificação e regras de codificação e/ou tabelas que são armazenados em uma base de dados e que são acessados quando realizando as atividades de codificação. Opcionalmente, a base de dados é criada durante o processo de codificação e liberada para uso quando implementando o método através de um codificador. Por exemplo, a compensação de movimento durante a codificação é beneficamente implementada usando bases de dados liberadas de informação para o codificador. Beneficamente, o codificador é operável para codificar a informação de pixel original presente nos dados de entrada e/ou codificar a informação de erro de previsão. O uso da informação da base de dados quando codificando os dados de entrada para gerar dados de saída codificados correspondentes possibilita que o codificador adapte-se às revisões nos padrões de codificação de parâmetros, tabelas e similares utilizados para codificação. As abordagens de codificação que podem ser adotadas quando se implementa os métodos de codificação incluem opcionalmente um ou mais de: referência de base de dados, valor DC, cursor, escala, linha, multinível, inalterado, interpolação, extrapolação, DCT, modulação de código de pulso (PCM), DPCM, RLE, SRLE, EM, LZO, VLC, codificação de Huffman, codificação aritmética, codificação de faixa, codificação de transformação, codificação delta, codificação ODelta, RLE específico de bzip-2. Opcionalmente, as abordagens de codificação que incluem qualquer combinação dos exemplos mencionados acima de codificação. Quando uma abordagem de codificação tal como codificação de Huffman é empregada, tal codificação usa beneficamente tabelas fixas de parâmetros de codificação ou tabelas liberadas de parâmetros de codificação. O codificador é beneficamente implementado usando hardware de computação tendo arranjos de armazenamento de dados, em que tabelas otimizadas de parâmetros de codificação podem ser armazenadas nos arranjos de armazenamento de dados para uso futuro quando realizando operações de codificação. Beneficamente, os endereços de referência para possibilitar que um decodificador acesse as bases de dados para obter os parâmetros apropriados para decodificar os dados de saída codificados a partir do codificador são incluídos nos dados de saída codificados. Opcionalmente, as bases de dados são acessíveis através de uma rede de comunicação, por exemplo, via Internet. Opcionalmente, as bases de dados são suportadas através de arranjos de computação em nuvem. Quando o método implementado no codificador utiliza bases de dados geradas matematicamente, as bases de dados podem, opcionalmente, ser o valor DC, transição linear 1D/2D, transição de curva 1D/2D, uma função de transformação 1D/2D ou alguma estrutura de pacote de áudio ou bloco de imagem conhecida.
O método de codificação, quando executado em um codificador, é operável para codificar os dados de entrada para gerar dados de entrada codificados, em que os dados de saída codificados podem ser produzidos como um fluxo de bits, alternativamente armazenados em meios de armazenamento de dados, por exemplo, como um arquivo de dados. Além do mais, o método da invenção é capaz de ser utilizado em uma faixa de aplicações possíveis; beneficamente, um cabeçalho para vídeo, imagem, bloco de imagem, áudio ou pacotes de áudio inclui informação suplementar, tais como número da versão, tamanho de dados para o vídeo, a imagem ou o pacote, limiar de fator de qualidade empregado quando codificando, tamanho de bloco ou pacote máximo, abordagens de codificação aplicadas, tabelas de parâmetros de codificação, e qualquer outra informação para auxiliar os processos de decodificação subsequentes. Considerações similares pertencem a todos os tipos no conteúdo de dados a ser codificado, por exemplo, pelo menos um de: dados de imagem, dados de vídeo, dados de áudio, dados econômicos, dados de máscara, dados sismográficos, dados convertidos de analógicos para digitais (ADC), dados texturais, dados de calendário, dados matemáticos, dados binários, mas não limitados a esses. Opcionalmente, a informação que não varia entre os blocos não é incluída para obter um grau aprimorado de compressão de dados nos dados de saída codificados, ou é incluída em um nível mais alto nos dados de saída codificados, por exemplo, a nível de cabeçalho ou de subcabeçalho. A tabela 3 provê uma ordem hierárquica de níveis que são beneficamente empregados nos dados de saída codificados gerados pelo codificador. TABELA 3: ORDEM DE NÍVEIS NOS DADOS DE SAÍDA CODIFICADOS, DE ALTO PARA BAIXO
Opcionalmente, o método de codificação é operável quando exe- cutado para selecionar e liberar informação pertencendo a um ou mais níveis nos dados de saída codificados, por exemplo, dependendo do campo de aplicação do método, por exemplo, produtos de vídeo de consumo, aparelho de compressão de imagem profissional para uso em pesquisa, aparelho de formação de imagem de raios X, aparelho de formação de imagem de ressonância magnética (MRA). Considerações similares pertencem a ordens de níveis nos dados de entrada codificados quando o método é empregado para codificar dados de áudio; podem haver cabeçalhos empregados para áudio, grupo de pacotes, pacotes, subpacotes, grupos de segmentos de forma de onda, e segmento de forma de onda.
Os dados de saída codificados a partir do codificador são comunicados e/ou armazenados, e eventualmente são recebidos como dados de entrada codificados para um codificador de acordo com a presente invenção. O decodificador implementa beneficamente um método de decodificar dados de entrada codificados de acordo com a presente invenção.
Com referência à figura 1, é mostra uma ilustração de um decodi- ficador de acordo com a presente invenção. O decodificador é indicado por 10 e é operável para receber dados de entrada codificados 20, por exemplo, dados de saída codificados a partir do codificador mencionado acima, e para decodificar os dados de entrada codificados 20 empregando um método de decodificação de acordo com a presente invenção para gerar dados de saída decodificados descomprimidos correspondentes 30. Os dados de saída 30 são beneficamente decodificados em um modo substancialmente sem perda como mencionado acima. O decodificador 10 é acoplado através de uma rede de comunicação 40 a um arranjo de base de dados 50 onde um ou mais parâmetros, tabelas e/ou regras para decodificar os dados de entrada codificados 20 são armazenados. Os dados de entrada codificados 20 são opcionalmente qualquer tipo de dados, por exemplo, pelo menos um de: dados de imagem, dados de vídeo, dados de áudio, dados econômicos, dados sismográficos, dados convertidos de analógicos para digitais (ADC), dados de sinais biomédicos, dados texturais, dados de calendário, dados matemáticos, dados binários, mas não limitados a esses. Opcionalmente, o decodifi- cador 10 é implementado para receber os dados codificados a partir de pelo menos uma das seguintes fontes: um dispositivo de memória de dados, a-través da rede de comunicação, um cartão de memória, discos de memória de dados, redes de comunicação de área local (LANs), diretamente a partir de um codificador.
Em operação, o decodificador 10 recebe os dados de entrada codificados 20, deriva a informação de decodificação a partir do arranjo de base de dados 50 através da rede de comunicação 40, e então prossegue para decodificar os dados de entrada 20 para gerar os dados de saída 30 descomprimidos decodificados. Opcionalmente, os dados de entrada 20 incluem pelo menos um de: áudio codificado, uma ou mais imagens, vídeo codificado, mas não estão limitados aos mesmos como mencionado acima. Opcionalmente, os dados de entrada codificados 20 incluem cabeçalhos, informação de codificação bem como dados codificados. Os dados de entrada codificados 20 podem ser transmitidos a partir do codificador, por exemplo, através de um arranjo de rede de comunicação, ou recuperados a partir de meios de armazenamento de dados legíveis por máquina, por exemplo, de armazenamento de unidade de disco rígido do servidor, dispositivos de memória em estado sólido portáteis e assim por diante.
O decodificador 10 é beneficamente implementado como hardware, por exemplo, através de um ou mais PGLA (Matriz Lógica de Portal Programável), através de uma ou mais aplicações de programa de computador executável em hardware de computação, ou qualquer mistura de hardware e programa de computador. O decodificador 10 pode ser empregado em produtos multimídia, computadores, telefones móveis ("telefones celulares"), serviços de Internet, gravadores de vídeo, tocadores de vídeo, aparelhos de comunicação e similares. O decodificador 10 é opcionalmente empregado em conjunto com sistemas de captura de imagem que produzem dados codificados, por exemplo, câmaras de vigilância, sistemas de raios X em hospital, escaners de MRI em hospital, escaners de ultrassom em hospital, sistemas de vigilância aéreos e aparelhos similares que geram grandes quantidades de dados de imagem em que compressão sem perda é desejado de modo a preservar a informação fina das imagens enquanto tornando as quantidades dos dados de imagem controláveis para fins de armazenamento de dados.
O decodificador 10 é utilizável beneficamente com aparelhos co- nhecidos para processamento de imagem, por exemplo, em conjunto com um processador de imagem/vídeo como descrito em um pedido de patente US publicado no US2007/280355 incorporado ao presente documento por referência, por exemplo, em conjunto com um gerador de imagem como descrito no pedido de patente US publicado no US2010/0322301 incorporado ao presente documento por referência, e, por exemplo, com um reconhece- dor de padrão como descrito em um pedido de patente US publicado no US2011/007971 incorporado ao presente documento por referência.
Um método de decodificar dados de entrada codificados usando o decodificador 10 da figura 1 será agora descrito com referência à figura 2. Na figura 2, as etapas de um método de decodificação de dados de entrada codificados 20 são indicadas por 100 a 190.
Em uma primeira etapa 100, o método de decodificação inclui o recebimento dos dados de entrada codificados para blocos, imagem, vídeo e/ou áudio, mas não limitados a esses, por exemplo, para receber os dados de entrada codificados 20 mencionados acima. Em uma segunda etapa 110, executada depois da primeira etapa 100, o método inclui descobrir e decodificar a informação de cabeçalho presente nos dados de entrada codificados 20, por exemplo, parâmetros descrevendo o tamanho da imagem, uma ou mais transformações de compressão que foram empregadas quando gerando os dados de entrada codificados 20, por exemplo, algoritmos RLE e/ou de Huffman.
Em uma terceira etapa 120, executada depois da segunda etapa 110, o método inclui opcionalmente a criação de um conjunto inicial de conjuntos de blocos e/ou pacotes para receber os dados decodificados a partir da segunda etapa 110. Depois, em uma quarta etapa 130, o método inclui analisar os dados de cabeçalho decodificados a partir da segunda etapa 110 para determinar as divisões e/ou combinações de blocos e/ou pacotes, e opcionalmente combinar a informação onde apropriado, por exemplo, duplicar os parâmetros que estão dispostos para descrever o conteúdo de uma pluralidade de blocos e/ou pacotes. Em uma quinta etapa 140 executada depois da quarta etapa 130, o método inclui determinar se ou não um deter- minado bloco ou pacote é dividido e/ou combinado; em um evento em que o determinado bloco ou pacote não é dividido e/ou combinado, o método progride para uma sexta etapa 150 que refere-se à divisão dos blocos ou pacotes envolvendo uma criação de um ou mais novos blocos ou pacotes. Na execução da sexta etapa 150, o método progride para uma nona etapa 180.
Na sétima etapa 160, o método inclui o processamento da informação de bloco e/ou pacote. Em uma oitava etapa 170, executada após o término da sétima etapa 160, o método inclui a decodificação de dados codificados correspondendo a blocos ou pacotes incluídos nos dados de entrada codificados 20 aplicando uma ou mais transformações inversas cujas identidades são determinadas a partir de informação de cabeçalho derivada da segunda etapa 110. Opcionalmente, a uma ou mais transformações inversas é obtida pelo decodificador 10 comunicando-se através da rede de comunicação 40 com o arranjo de base de dados 50, por exemplo, um arranjo de base de dados 50 que proporcionou o suporte de algoritmo de informação para a codificação anterior dos dados de entrada codificados 20. Durante a oitava etapa 170, os blocos e/ou pacotes gerados na terceira etapa 120, e opcionalmente divididos e/ou combinados na quarta, quinta e sexta etapas 130, 140, 150, respectivamente, são preenchidos com os dados de blocos e/ou pacotes decodificados gerados na oitava etapa 170, em que o bloco decodificado e/ou os dados de blocos e/ou pacotes opcionalmente tornam- se descomprimidos. Na nona etapa 180 mencionada acima, o método inclui verificar para um último bloco, um último pacote ou um bloco inicial ou quadro sendo alcançado; em um caso em que o último bloco e assim por diante não é alcançado, o método progride de volta para a primeira etapa 100 ou a quarta etapa 130; em um caso em que o último bloco e assim por diante é alcançado, o método inclui o progresso para uma décima etapa 190 em que a decodificação de bloco, pacote ou imagem ou vídeo foi concluída, onde depois o método inclui a produção de dados de saída decodificados 30, a saber, a versão decodificada e descomprimida dos dados de entrada codificados 20. Também é possível pular diretamente da segunda etapa 110 para a oitava etapa 170, se a informação de cabeçalho mostrar que o b,oco ou a imagem é similar do que o bloco ou imagem anterior ou o bloco ou imagem é, por exemplo, da cor preta. Todos os dados decodificados que podem ser mostrados, escritos para o arquivo ou transmitidos para fora são beneficamente gerados logo que possível para evitar barramentos e latências extras.
Com referência a seguir à figura 3, a partir do descrito acima, será apreciado que o método de codificação empregado para gerar os dados de entrada codificados 20, quando apropriado, gera um tamanho de bloco ou pacote variável para prover uma solução ótima entre a compressão de dados nos dados de entrada codificados 20 e compressão substancialmente sem perda, a saber, substancialmente sem perda discernível. Na figura 3, blocos de codificação 300 grandes são empregados para um canto do lado esquerdo superior de uma determinada imagem, em que blocos menores 310, 320, 330 são requeridos ao longo do lado direito e áreas da borda inferiores da imagem para prover mais precisamente a codificação destas áreas. Nos dados de entrada codificados 20, parâmetros descrevendo o conteúdo da imagem dos blocos 300, 310, 320, 330 e a posição dos blocos dentro da imagem são incluídos nos dados de entrada codificados 20. Beneficamente, o método de codificação empregado para codificar os blocos 300, 310, 320, 330 que também são definidos nos dados de entrada codificados 20, por exemplo, métodos diferentes para os blocos diferentes 300, 310, 320, 330. A distribuição dos blocos 300, 310, 320, 330 irá variar dependendo da distribuição espacial do conteúdo dentro das imagens a serem codificadas. O deco- dificador 10 é operável, por exemplo, para lidar com a decodificação de da-dos codificados a partir de um esquema como representado na figura 3. Op-cionalmente, o hardware de computação do codificador 10 é implementado como uma pluralidade de processadores de dados que são capazes de operar em um modo simultâneo para decodificar os dados codificados correspondendo a blocos e/ou pacotes, deste modo aumentando uma taxa na qual os dados de entrada codificados 20 podem ser decodificados para gerar os dados de saída decodificados 30; por exemplo, a decodificação em tempo real de fluxos de vídeo deste modo tornando-se possível. A figura 3 mostra um exemplo da divisão inicial de blocos na imagem que é gerada na terceira etapa 120 do decodificador, a saber, na segunda etapa 110 no codificador. Esta divisão inicial de blocos não requer que qualquer informação seja enviada entre o codificador e o decodificador, porque ela pode ser baseada, por exemplo, em um tamanho da imagem. Quando a divisão real de um bloco é 5 executada na quinta etapa 140 no codificador, então essa informação é ne cessária para ser liberada para o decodificador 10. O decodificador 10 decodifica esta informação liberada na quarta etapa 130 e a divisão, alternativamente, combinação, da decisão de blocos e/ou pacotes na quinta etapa 140 baseado nessa informação decodificada.
No descrito acima, as seguintes abreviações foram usadas como dada na tabela 4, Estes vários formatos de codificação são todos potencialmente relevantes para uso quando se implementa o decodificador 10, dependendo do desempenho desejado do decodificador 10. TABELA 4: ABREVIAÇÕES PARA DECODIFICAR TRANSFORMAÇÕES 15 UTILIZÁVEIS QUANDO IMPLEMENTANDO AS MODALIDADES DA PRE SENTE INVENÇÃO
O método de codificação de acordo com a invenção, por exem- plo, como representado na figura 2, é capaz, através da camada e da codificação de canal executada no decodificador 10, de suportar as apresentações de vídeo interativas para prover novos tipos de serviços de liberação de conteúdo, por exemplo, anúncios comerciais interativos, perspectivas quando transmitindo atividades esportivas ao vivo tal como a fórmula 1 e assim por diante, e filmes. Por exemplo, o decodificador 10 permite filmes com camadas de subtítulo localizadas, marcas d’água interativas, reconhecimento de padrão interativo, botões de interface de usuário (UI) 2D/3D animada e assim por diante.
UM EXEMPLO
Um exemplo simplificado de decodificar uma imagem codificada é descrito. Baseado na modalidade o decodificador recebe conteúdo de informação a partir do codificador, por exemplo, como transmitido ou como arquivo. De acordo com o exemplo, o conteúdo da informação está na forma de um arquivo consistindo dos seguintes campos de informação e conteúdo: Tamanho da imagem: 120 x 80 pixels Tamanho do bloco inicial: 40 x 40 pixels Bit dividido: 0 0 1 0000 0 1 0010 0000 1 1000 0000 Bits do método: 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Valores: 10 10 20 25 15 20 10 10 10 10 10 10 5 10 5 5 5 5 5 5 10 5 5 5 Em que:
Tamanho de imagem descreve o tamanho da imagem a ser de-codificada. O tamanho da imagem pode ser arbitrário; Tamanho do bloco inicial descreve o que é tamanho de blocos iniciais "básicos". Dependendo da implementação, o Tamanho de bloco inicial pode ser fixo, tal como 40x40, ou pode variar, por exemplo, 20x20, 80x80, e assim por diante. É provável não ser necessário enviar a informação Tamanho de bloco inicial no caso de usar valores-padrão no decodifica- dor e no codificador;
Valores de bit dividido de "0" indicam que um determinado bloco não será dividido e o valor "1" indica que o determinado bloco será dividido. No caso de dividir o bloco em sub-blocos, "1" será seguido pelas regras de se dividir o sub-bloco ou não;
Bits do método descrevem o que fazer com cada bloco. Como um exemplo, "0" pode se referir a um bloco de preenchimento com cor uniforme, em que "1" pode se referir a aplicar um gradiente de cor a um bloco; e
Valores descrevem valores a serem aplicados a cada Bit de método; o valor pode ser, por exemplo, um valor de cor ou, por exemplo, regras de gradientes de preenchimento ou, por exemplo, apontador para base de dados contendo instruções de como preencher o bloco. Em um exemplo, um valor "10" corresponde a azul, o valor "5" a verde e os valores "15", "20", "25" a intensidades de vermelho diferentes.
Em uma quinta etapa de decodificar uma imagem, uma área de imagem de 120x80 pixels é reservada a partir da memória de um dispositivo onde ocorre a decodificação. A área de imagem 402 é dividida em seis blocos de 40x40 como mostrado na figura 4. Os blocos são marcados com as letras A, B, C, D, E e F para fins de clareza.
Em uma segunda etapa de decodificação, o conteúdo da informação Bit dividido (0 0 1 0000 0 1 0010 1 1000 0000) é usado para dividir a área de imagem 402 em mais blocos.
O número de bit 1 do conteúdo da informação Bit dividido é "0" indicando que o bloco A não será mais dividido. O número de bit 2 do conteúdo da informação Bit dividido é "0" indicando que o bloco B não será mais dividido.
O número de bit 3 do conteúdo da informação Bit dividido é "1" indicando que o bloco C será dividido em sub-blocos. O número de bit 4 do conteúdo da informação Bit dividido é "0" indicando que o sub-bloco 1 (depois C1) do bloco C não será mais dividido.
O número de bit 5 do conteúdo da informação Bit dividido é "0" indicando que o sub-bloco 2 (depois C2) do bloco C não será mais dividido.
O número de bit 6 do conteúdo da informação Bit dividido é "0" indicando que o sub-bloco 3 (depois C3) do bloco C não será mais dividido.
O número de bit 7 do conteúdo da informação Bit dividido é "0" indicando que o sub-bloco 4 (depois C4) o bloco C não será mais dividido. O número de bit 8 do conteúdo da informação Bit dividido é "0" indicando que o bloco D não será mais dividido.
O número de bit 9 do conteúdo da informação Bit dividido é "1" indicando que o bloco E será dividido em sub-blocos. O número de bit 10 do conteúdo da informação Bit dividido é "0" indicando que o sub-bloco 1 (depois E1) o bloco E não será mais dividido.
O número de bit 11 do conteúdo da informação Bit dividido é "0" indicando que o sub-bloco 2 (depois E2) o bloco E não será mais dividido.
O número de bit 12 do conteúdo da informação Bit dividido é "1" indicando que o sub-bloco E3 será dividido em sub-blocos. O número de bit 13 do conteúdo da informação Bit dividido é "0" indicando que o sub-bloco 1 (depois E31) do sub-bloco E3 não será mais dividido.
O número de bit 14 do conteúdo da informação Bit dividido é "0" indicando que o sub-bloco 2 (depois E32) do sub-bloco E3 não será mais dividido.
O número de bit 15 do conteúdo da informação Bit dividido é "0" indicando que o sub-bloco 3 (depois E33) do bloco E3 não será mais dividido.
O número de bit 16 do conteúdo da informação Bit dividido é "0" indicando que o sub-bloco 3 (depois E34) do sub-bloco E3 não será mais dividido.
O número de bit 17 do conteúdo da informação Bit dividido é "0" indicando que o sub-bloco 4 (depois E4) do sub-bloco E3 não será mais dividido. O número de bit 18 do conteúdo da informação Bit dividido é "1" indicando que o bloco F será dividido em sub-blocos.
O número de bit 19 do conteúdo da informação Bit dividido é "1" indicando que o sub-bloco F1 será dividido em sub-blocos. O número de bit 20 do conteúdo da informação Bit dividido é "0" indicando que o sub-bloco 1 (depois F11) do sub-bloco F1 não será mais dividido.
O número de bit 21 do conteúdo da informação Bit dividido é "0" indicando que o sub-bloco 2 (depois F12) do bloco F1 não será mais dividido.
O número de bit 22 do conteúdo da informação Bit dividido é "0" indicando que o sub-bloco 3 (depois F13) do bloco F1 não será mais dividido.
O número de bit 23 do conteúdo da informação Bit dividido é "0" indicando que o sub-bloco 4 (depois F14) do sub-bloco F1 não será mais dividido.
O número de bit 24 do conteúdo da informação Bit dividido é "0" indicando que o sub-bloco F2 não será mais dividido. O número de bit 25 do conteúdo da informação Bit dividido é "0" indicando que o sub-bloco F3 não será mais dividido. O número de bit 26 do conteúdo da informação Bit dividido é "0" indicando que o sub-bloco F4 não será mais dividido.
A decodificação da informação Bit dividido resulta em "grade" de blocos ao longo da área de imagem 500 como mostrado na figura 5.
Em uma terceira etapa, Bits de método são usados no processo de decodificação. O conteúdo da informação é 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0. O terceiro bit de Bits de método é "1" indicando que o terceiro bloco na grade deve ser aplicado com uma função de gradiente, O terceiro blo- co é o bloco C1 da figura 5. Todos os outros devem ser aplicados com cor constante como definido nas regras de decodificação da modalidade.
Na quarta etapa, a informação Valor é usada no processo de decodificação. O conteúdo da informação é 10 10 20 25 15 20 10 10 10 10 10 10 5 10 5 5 5 5 5 5 10 5 5 5.
O primeiro valor 10 indica a cor do primeiro bloco A, a saber, azul. A cor é aplicada ao bloco A. O segundo valor 10 indica a cor do segundo bloco B, a saber, azul. A cor é aplicada ao bloco B.
Para o terceiro bloco, o método proporciona um "gradiente" dos valores 20, 25, 15 e 20, que indica a cor de cada canto do bloco C1, a saber, vermelho, com 20 para o canto esquerdo do topo, 25 para o canto direito do topo, 15 para o canto esquerdo de fundo e 20 para o canto direito de fundo. O preenchimento do gradiente para todo o bloco é aplicado usando os valores de partida para cada canto do bloco C1.
Para o quarto bloco (C2) o valor da cor de 10 é aplicado, e assim por diante. Cada bloco é preenchido com a respectiva or. Uma imagem 600 resultante é mostrada na figura 6. Uma grade de blocos é mostrada na figura 6 para fins de clareza. Na prática, para uma imagem a ser exibida a um usuário, tal grade não pode ser mostrada para o usuário.
Um algoritmo para implementar uma ou mais modalidades também pode incluir uma ou mais bases de dados para armazenar combinações "comuns" de estruturas e cores de bloco. De acordo com a modalidade, uma vez que o grupo de blocos E31, E32, E33 e E34 e o grupo de blocos F11, F12, F13 e F14 têm a mesma combinação e ordem de valores de cor (10, 5, 5, 5) podem ser considerados como um elemento e designados com valores próprios (referidos como Valor de Combinação). O valor de combinação pode ser armazenado em uma base de dados (do codificador ou decodificador) e denominado com o número de identificação de referência quando necessário. Frequentemente os fluxos separados para valores para métodos diferentes são usados, por exemplo, nos valores DC do exemplo anterior e valores de cursor podem ser definidos para separar os fluxos. Alguns métodos opcionalmente geram múltiplos fluxos por si mesmos para possibilitar que uma entropia menor seja obtida para cada fluxo que possibilita melhor eficácia de compressão nos métodos de codificação de entropia, por exemplo, usando um método de múltiplos níveis em que níveis altos e baixos podem ser definidos para separar os fluxos, porque frequentemente valores altos estão mais próximos uns dos outros, similarmente como os valores baixos estão mais próximos uns dos outros, e então a codificação de faixa que usa delta codificado, os valores altos ou baixos operam muito bem.
EXEMPLO DE DISPOSITIVO
Em uma modalidade, a decodificação pode ser implementada em dispositivo portátil 700 da figura 7, tal como um telefone inteligente, uma câmera digital ou uma câmera de vídeo. O dispositivo portátil 700 pode consistir de uma câmera 704 para capturar uma imagem, um monitor 702 para mostrar uma imagem, um transmissor receptor (RX/TX) 706 para possibilitar comunicação usando redes celulares ou redes de área local, outra Entra- da/Saída (I/O) 712 tal como Barramento em Série Universal (BUS) ou Ethernet, uma Unidade de Processamento Central (CPU) 708 para executar a decodificação e codificação referente a algoritmos e instruções e memória 710 para armazenar imagem de câmera, e programa de computador para a decodificação de conteúdo da imagem codificada. O dispositivo portátil 700 é opcionalmente configurado para armazenar imagens codificadas em sua memória espacialmente local 710 ou pode ser configurado para perguntar periodicamente, em solicitação, quando da ação do usuário ou em tempo real ou próximo às imagens codificadas em tempo real através de RX/TX 706 ou através de I/O 712 a partir de sistemas externos.
Modificações para as modalidades da invenção descritas acima são possíveis sem sair do escopo da invenção como definido pelas reivindicações anexas. Expressões tais como "incluindo", "compreendendo", "incorporando", "consistindo em", "ter", "é" usadas para descrever e reivindicar a presente invenção são destinadas a serem interpretadas de um modo não exclusivo, a saber, permitir que itens, componentes ou elementos não explicitamente descritos também estejam presentes. Referência ao singular tam- bém deve ser interpretada para referir-se ao plural. Os números incluídos entre parênteses nas reivindicações anexas são destinados a auxiliar o entendimento das reivindicações e não devem de modo algum ser interpretados para limitar a matéria objeto reivindicada nestas reivindicações.

Claims (23)

1. Método de decodificar dados de entrada codificados (20) para gerar dados de saída decodificados (30) correspondentes, caracterizado pelo fato de que o referido método inclui as etapas de: (a) receber os dados de entrada codificados contendo múltiplos canais como canais separados; (b) processar os dados de entrada codificados (20) para extrair dos mesmos a informação de cabeçalho indicativa de dados codificados pertencendo a blocos e/ou pacotes incluídos nos dados de entrada codificados pertencendo a blocos e/ou pacotes incluídos nos dados de entrada codificados (20), dita informação de cabeçalho incluindo dados indicativos de uma ou mais transformações empregadas para codificar e comprimir dados de blocos e/oupacotes originais para inclusão como os dados codificados pertencendo aos blocos e/ou pacotes; (c) criar um conjunto inicial de blocos individuais ou pacotes baseados nos dados de cabeçalho recebidos e preparar um campo de dados em um arranjo de armazenamento de dados para receber conteúdo de blocos e/ou pacotes decodificado; (d) dividir e/ou combinar blocos e/ou pacotes no campo de dados de acordo com a divisão e/ou combinação de informações incluídas nos dados de entrada codificados (20); (e) recuperar informação separadamente para cada canal descrevendo a uma ou mais transformações e, então, aplicar um inverso da uma ou mais transformações para decodificar o bloco e/ou pacote de dados original codificado e compactado para gerar o conteúdo correspondente decodificado do bloco e/ou do pacote para preencher o referido campo de dados; e (f) quando os dados de entrada codificados tiverem sido pelo menos parcialmente decodificados, produzir os dados a partir do campo de dados como os dados desaída decodificados (30).
2. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que o método inclui proporcionar os dados codificados a partir de pelo menos uma das seguintes fontes: um dispositivo de memória de dados, através de uma rede de comunicação, um cartão de memória, discos de memória de dados, redes de comunicação de área local (LANs), diretamente a partir de um codificador.
3. Método, de acordo com a reivindicação 1 ou 2, caracterizado pelo fato de que o método inclui a busca de informação suplementar a partir de um arranjo de base de dados para uso quando se executa dito inverso de ditas uma ou mais transformações, dita informação suplementar incluindo pelo menos um de: algoritmos, regras, um ou mais parâmetros de informação.
4. Método, de acordo com a reivindicação 4, caracterizado pelo fato de que dito método inclui ainda recuperar a informação de cabeçalho a partir dos dados de entrada codificados (20) indicativa do arranjo de base de dados para possibilitar a decodificação dos dados de entrada codificados (20) para acessar dita informação suplementar usada quando codificando antes os dados de entrada (20).
5. Método, de acordo com a reivindicação 1, 2, 3 ou 4, caracterizado pelo fatode que o método inclui decodificar blocos ou pacotes incluindo pelo menos um de: dados de imagem, dados de vídeo, dados de áudio, dados econômicos, dados de máscara, dados sismográficos, dados convertidos de analógicos para digitais (ADC), dados de sinais biomédicos, dados texturais, dados de calendário, dados matemáticos, dados binários, dados para uma série temporal de imagens de áudio e/ou vídeo, em que a subdivisão dos blocos oupacotes depende do conteúdo presente nos blocos ou pacotes precedentes.
6. Método, de acordo com qualquer uma das reivindicações precedentes, caracterizado pelo fato de que dito método inclui empregar para dito inverso de uma ou maistransformações inversas de um ou mais de: referência de base de dados, valor DC, cursor, escala, linha, multinível, inalterado, interpolação, extrapolação, DCT, modulação de código de pulso (PCM), DPCM, RLE, SRLE, EM, LZO, VLC, codificação de Huffman, codificação aritmética, codificação de faixa, codificação de transformação, codificação delta, codificação ODelta, RLE específico de bzip-2.
7. Método, de acordo com qualquer uma das reivindicações precedentes, caracterizado pelo fato de que o método inclui decodificar pelo menos um de: dados de imagem, dados de vídeo, dados de áudio, dados econômicos, dados de máscara, dados sismográficos, dados convertidos de analógicos para digitais (ADC), dados de sinais biomédicos, dados texturais, dados de calendário, dados matemáticos, dados binários, em que um ou mais destes está presente nos dados de entrada codificados (20).
8. Mídia de armazenamento de dados legíveis por máquina que compreende instruções de computador, as quais, quando executadas por um hardware de computação de um decodificador (10), é caracterizada por fazer com que o decodificador (10) execute o método como definido em qualquer uma das reivindicações precedentes 1 a 7.
9. Dispositivo móvel de comunicação sem fio que compreende instruções de computador executadas por uma mídia de armazenamento de dados legíveis por máquina caracterizada por ser uma mídia de armazenamento de dados legíveis por máquina como definida na reivindicação 8.
10. Decodificador (10) operável para decodificar os dados de entrada (20) para gerar dados de saída decodificados (30) correspondentes, caracterizado pelo fato de que o decodificador (10) inclui hardware de processamento de dados que é operável para: (a) receber os dados de entrada codificados contendo múltiplos canais comocanais separados; (b) processar os dados de entrada codificados (20) para extrair dos mesmos a informação de cabeçalho indicativa de dados codificados pertencendo a blocos e/ou pacotes incluídos nos dados de entrada codificados pertencendo a blocos e/ou pacotes incluídos nos dados de entrada codificados (20), dita informação de cabeçalho incluindo dados indicativos de uma ou mais transformações empregadas para codificar e comprimir dados de blocos e/ou pacotes originais para inclusão como os dados codificados pertencendoaos blocos e/ou pacotes; (c) criar um conjunto inicial de blocos individuais ou pacotes baseados nos dados de cabeçalho recebidos e preparar um campo de dados em um arranjo de armazenamento de dados para receber conteúdo de blocos e/ou pacotes decodificado; (d) dividir e/ou combinar blocos e/ou pacotes no campo de dados de acordo com a divisão e/ou combinação de informações incluídas nos dados de Página 3 de 6 entrada codificados (20); (e) recuperar informação separadamente para cada canal descrevendo a uma ou mais transformações e, então, aplicar um inverso da uma ou mais transformações para decodificar o bloco e/ou pacote de dados original codificado e compactado para gerar o conteúdo correspondente decodificado do bloco e/ou do pacote para preencher o referido campo de dados; e (f) quando os dados de entrada codificados tiverem sido pelo menos parcialmente decodificados, para produzir os dados a partir do campo de dados como os dados de saída decodificados (30).
11. Decodificador, de acordo com a reivindicação 10, caracterizado pelo fato de que o decodificador é operável para buscar a informação suplementar a partir de um arranjo de base de dados para uso quando executando dito inverso de uma ou mais transformações, dita informação suplementar incluindo pelo menos um de: algoritmos, regrasou mais parâmetros de transformação.
12. Decodificador, de acordo com a reivindicação 10, caracterizado pelo fato de que o decodificador é implementado para receber os dados codificados a partir de pelo menos uma das seguintes fontes: um dispositivo de memória de dados, através de uma rede de comunicação, um cartão de memória, discos de memória de dados, redes de comunicaçãode área local (LANs), diretamente a partir de um codificador.
13. Decodificador, de acordo com a reivindicação 10, caracterizado pelo fato de que o hardware de processamento de dados é implementado usando hardware de computação operável para executar um produto de software.
14. Decodificador, de acordo com a reivindicação 10, 11, 12 ou 13, caracterizado pelo fato de que decodificador (10) é operável para usar um inverso de uma ou mais transformações para descomprimir o conteúdo associado com os blocos e/oupacotes, de modo que os dados de saída decodificados (30) são maiores em tamanho do queos dados de entrada (20) a serem decodificados.
15. Decodificador (10), de acordo com a reivindicação 10, 11, 12, 13 ou 14, caracterizado pelo fato de que os blocos e/ou pacotes são subdivididos ou combinados de modo que pelo menos um de seus parâmetros representativos descrevendo seu conteúdo é substancialmente liso dentro de seus blocos ou pacotes Página 4 de 6 subdivididos ou combinados.
16. Decodificador (10), de acordo com a reivindicação 15, caracterizado pelofato de que dito pelo menos um parâmetro corresponde a uma propriedade dos blocos subdivididos ou combinados.
17. Decodificador (10), de acordo com qualquer uma das reivindicações 10 a 16, caracterizado pelo fato de que os blocos e/ou pacotes correspondem a uma série de áudio e/ou imagens, em que a subdivisão dos dados de entrada (20) correspondendo a uma dada imagem e/ou áudio para formar uma pluralidade de blocos correspondentes depende do conteúdo presente em uma ou mais imagens e/ou áudio precedendo a determinada imagem dentro da sequência temporal de imagens e/ou áudio.
18. Decodificador (10), de acordo com qualquer uma das reivindicações 10 a 17, caracterizado pelo fato de que o decodificador (10) é operável para recuperar a informação de cabeçalho para os dados transformados para gerar os dados de saídadecodificados (30), em que dita informação de cabeçalho inclui a informação indicativa de dita uma ou mais transformações empregadas por um decodificador (10) que geraram os dados de entrada codificados (20).
19. Decodificador (10), de acordo com a reivindicação 10, caracterizado pelofato de que dito decodificador (10) é operável para recuperar a informação de cabeçalho para os dados de entrada codificados (20) em um modo indicativo de arranjo de base de dados para possibilitar a decodificação dos dados de entrada codificados (20) para acessar dita informação suplementar usada quando codificando antes os dados de entrada codificados (20).
20. Decodificador (10), de acordo com qualquer uma das reivindicações de 10 a 19, caracterizado pelo fato de que dito decodificador (10) é operável para empregar parao inverso de uma ou mais transformações inversas de um ou mais de: referência de base dedados, valor DC, cursos, escala, linha, multinível, inalterado, interpolação, extrapolação, DCT, modulação de código de pulso (PCM), DPCM, RLE, SRLE, EM, LZO, VLC, codificação de Huffman, codificação aritmética, codificação de faixa, codificação de transformação, codificação delta, codificação ODelta, RLE específico de bzip2.
21. Decodificador (10), de acordo com qualquer uma das reivindicações 10 a 20, caracterizado pelo fato de que o decodificador (10) é operável para decodificar pelo menos um de: dados de imagem, dados de vídeo, dados de áudio, dados econômicos, dadosde máscara, dados sismográficos, dados convertidos de analógicos para digitais (ADC), dados de sinais biomédicos, dados texturais, dados 5 de calendário, dados matemáticos, dadosbinários, em que um ou mais destes estão presentes nos dados de entrada codificados (20).
22. Produto de consumo eletrônico operável para receber e/ou armazenar dados de entrada codificados, caracterizado pelo fato de que dito produto de consumo eletrônico inclui um decodificador (10), como definido em qualquer uma 10 das reivindicações de 10 a 21, para decodificar os dados de entrada para gerar o conteúdo decodificado correspondente para prover a pelo menos um usuário do produto de consumo.
23. Produto de consumo eletrônico, de acordo com a reivindicação 22, caracterizado pelo fato de que o produto de consumo eletrônico é pelo menos 15 um de: um telefone móvel, um telefone celular, um computador tablet, uma televisão, um dispositivo de tocador de mídia portátil, uma câmera, um computador pessoal.
BR102013020614-8A 2012-08-13 2013-08-13 Decodificador e método BR102013020614B1 (pt)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
GB1214400.2 2012-08-13
US13/584,047 2012-08-13
EP13002520.8 2013-05-14

Publications (1)

Publication Number Publication Date
BR102013020614B1 true BR102013020614B1 (pt) 2023-05-30

Family

ID=

Similar Documents

Publication Publication Date Title
TWI590662B (zh) 解碼器及解碼方法
BR102013020622B1 (pt) Codificador e método
EP4075804A1 (en) Point cloud data transmission device, transmission method, processing device and processing method
KR20210050186A (ko) 영상의 ai 부호화 및 ai 복호화 방법, 및 장치
JP6706357B2 (ja) 少なくとも1つの第2の画像成分の参照ブロックに対して第1の画像成分の現在ブロックを符号化するための方法、符号化装置および対応するコンピュータプログラム
US10333547B2 (en) Encoder and method for encoding input data using a plurality of different transformations or combinations of transformations
WO2015120818A1 (zh) 图像编码、解码方法及装置
US20170070752A1 (en) Decoder and method
US11601488B2 (en) Device and method for transmitting point cloud data, device and method for processing point cloud data
GB2528460A (en) Encoder, decoder and method
KR20220147641A (ko) 영상 특징 정보 시그널링을 위한 영상 부호화/복호화 방법, 장치 및 비트스트림을 전송하는 방법
US20240155157A1 (en) Point cloud data transmission device, point cloud data transmission method, point cloud data reception device and point cloud data reception method
Mukhopadhyay et al. LRJPEG: a luminance reduction based modification for jpeg algorithm to improve medical image compression
BR102013020614B1 (pt) Decodificador e método
BR102013020614A2 (pt) Decoder and method
WO2024011381A1 (zh) 点云编解码方法、装置、设备及存储介质
WO2023240662A1 (zh) 编解码方法、编码器、解码器以及存储介质
EP2698996A2 (en) Decoder and method
BR122022006636B1 (pt) Método de decodificação de imagem realizado por um aparelho de decodificação, aparelho de decodificação, método de codificação de imagem realizado por um aparelho de codificação, aparelho de codificação, meio de armazenamento legível por computador não transitório, método de transmissão de dados para uma imagem e aparelho de transmissão para transmissão de dados para uma imagem
BR122022006649B1 (pt) Método de decodificação de imagem realizado por um aparelho de decodificação, aparelho de decodificação, método de codificação de imagem realizado por um aparelho de codificação, aparelho de codificação, meio de armazenamento legível por computador não transitório, método de transmissão de dados para uma imagem e aparelho de transmissão para transmissão de dados para uma imagem
BR112021011225B1 (pt) Método de decodificação de imagem realizado por um aparelho de decodificação, método de codificação de imagem realizado por um aparelho de codificação de imagem e meio de armazenamento legível por computador não transitório
BR122022006273B1 (pt) Método e aparelho de decodificação de imagem, método e aparelho de codificação de imagem, meio de armazenamento legível por computador não transitório, método e aparelho de transmissão de dados para uma imagem
BR112021010422B1 (pt) Método de decodificação de imagem realizado por um aparelho de decodificação, método de codificação de imagem realizado por um aparelho de codificação de imagem e meio de armazenamento legível por computador não transitório
WO2019045544A1 (ko) 레이어드 기븐스 변환을 이용하여 변환을 수행하는 방법 및 장치
CN111683247A (zh) 多权重可减少分量数的分量间自预测数据压缩方法和装置