BR102013031748B1 - Codificador, decodificador e método - Google Patents

Codificador, decodificador e método Download PDF

Info

Publication number
BR102013031748B1
BR102013031748B1 BR102013031748-9A BR102013031748A BR102013031748B1 BR 102013031748 B1 BR102013031748 B1 BR 102013031748B1 BR 102013031748 A BR102013031748 A BR 102013031748A BR 102013031748 B1 BR102013031748 B1 BR 102013031748B1
Authority
BR
Brazil
Prior art keywords
data
databases
elements
reference values
encoded
Prior art date
Application number
BR102013031748-9A
Other languages
English (en)
Other versions
BR102013031748A2 (pt
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 BR102013031748A2 publication Critical patent/BR102013031748A2/pt
Publication of BR102013031748B1 publication Critical patent/BR102013031748B1/pt

Links

Images

Classifications

    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
    • G10L19/02Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using spectral analysis, e.g. transform vocoders or subband vocoders
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • G06T9/008Vector quantisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/119Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/124Quantisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/236Assembling of a multiplex stream, e.g. transport stream, by combining a video stream with other content or additional data, e.g. inserting a URL [Uniform Resource Locator] into a video stream, multiplexing software data into a video stream; Remultiplexing of multiplex streams; Insertion of stuffing bits into the multiplex stream, e.g. to obtain a constant bit-rate; Assembling of a packetised elementary stream
    • 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/434Disassembling of a multiplex stream, e.g. demultiplexing audio and video streams, extraction of additional data from a video stream; Remultiplexing of multiplex streams; Extraction or processing of SI; Disassembling of packetised elementary stream
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/44Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/94Vector quantisation

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • Spectroscopy & Molecular Physics (AREA)
  • Computational Linguistics (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Human Computer Interaction (AREA)
  • Acoustics & Sound (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

CODIFICADOR, DECODIFICADOR E MÉTODO. A presente invenção refere-se a urn método de codificação de dados fonte (20) para gerar dados codificados correspondentes (30) para transmissão ou armazenamento que é fornecido, onde o método inclui:(a) combinação de uma ou mais partes dos dados fonte (20) com um ou mais elementos (E) em uma ou mais bases de dados (100), onde os um ou mais elementos (E) são representativos dos um ou mais blocos de dados correspondentes e a gravação de valores de referência (R, 300) que se referem a uma ou mais partes dos dados fonte (20) com um ou mais elementos combinados (E); e (b) inclusão dos valores de referência (R, 300) nos dados codificados (30) juntamente com as uma ou mais bases de dados (100) e/ou informação identificando uma ou mais bases de dados (100). Um método de decodificação de dados codificados (30) para gerar dados de saída decodificados correspondentes (60) também é fornecido, onde o método inclui: (a) o recebimento de dados codificados (30) incluindo os valores de referência (R, 300) e informação referente aos identificadores de área (U) e informação referente a uma ou mais bases de dados (100); (b) a decodificação a partir dos dados codificados (30) dos valores de referência (R, 300); (c) o acesso a um ou mais (...).

Description

Campo Técnico
A presente invenção refere-se a codificadores para a codificação de dados de fonte, por exemplo, dados de áudio e/ou dados de imagem capturada, para a geração de dados codificados correspondentes; ademais, a presente descrição refere-se a decodificadores para a decodificação de dados codificados para geração de dados decodificados correspondentes, por exemplo, dados decodificados que representam os dados fonte; os codificadores e os decodificadores sendo operáveis, por exemplo, para empregar uma ou mais bases de dados que incluem informação que é processada em combinação com os dados codificados nos decodificadores para a geração de dados decodificados; as uma ou mais bases de dados são, por exemplo, localizadas em um ou mais servidores de dados. Adicionalmente, a presente descrição se refere a métodos de codificação de dados fonte para gerar dados codificados correspondentes; porém, adicionalmente, a presente descrição se refere a métodos de decodificação de dados codificados para a geração de dados decodificados correspondentes, por exemplo, que representam s dados de fonte os métodos, por exemplo, incluindo a utilização de uma ou mais bases de dados que incluem a informação que é processada em combinação com os dados codificados para gerar os dados decodificados. Adicionalmente, a presente descrição se refere a produtos de software gravados em meio de armazenamento de dados legível por máquina, não transitório, isto é, não transiente, onde os produtos de software são executáveis mediante hardware de computação para implementação dos métodos mencionados acima.
Antecedentes
De forma convencional, a codificação de dados fonte, por exemplo, através de codificação MPEG contemporânea de dados de imagem capturados, envolve o processamento de dados de fonte para transformação dos dados fonte em dados codificados pela aplicação de uma ou mais transformações aos dados fonte. Ademais, a decodificação dos dados codificados envolve o processamento de dados codificados para transformar os dados codificados em dados decodificados correspondentes, por exemplo, dados decodificados representativos dos dados fonte, pela aplicação de uma ou mais transformações inversas os dados codificados. Tal codificação pode ser empregada para compressão de dados fonte, por exemplo, para reduzir seu tamanho de dados para transmissão ou armazenamento em um portador de dados; alternativamente, ou adicionalmente, tal codificação pode ser empregada para aumentar a segurança dos dados fonte quando sendo transmitidos através de um meio de transmissão, por exemplo, através da Internet. É prática comum se implementar tais codificadores e decodificado- res como unidades de processamento auto contidas, por exemplo, embutidas em câmeras digitais, aparelhos de reprodução de DVD e produtos de consumidor similares. No entanto, com maior interconectividade simultânea de dispositivos de processamento de dados, tem se tornado uma prática mais recente se desenhar os codificadores e decodificadores a serem implementados utilizando-se produtos de software de modo que possam ser reconfigurados, por exemplo, para adaptação dos decodificadores para lidarem com os dados codificados que foram codificados utilizando-se as transformações de codificação que foram recentemente evoluídas e atualizadas.
Em uma patente U.S. publicada US 4553171, é descrito um método para a impressão digital de uma imagem digital por referência a uma sucessão de palavras código representando os blocos de pixels de uma imagem original. A imagem original é codificada pela subdivisão da mesma em blocos de tamanho uniforme de pixels. Opcionalmente, cada um dos blocos de pixels recebe um identificador singular a menos que seja idêntico a qualquer um dos blocos digitalizados anteriormente. Os blocos idênticos de pixels recebem o mesmo identificador. Quando da impressão da imagem original como representada pelos blocos de pixels mencionados acima como representado pelos identificadores expressos como palavras código, os iden-tificadores são digitalizados sequencialmente e os blocos de pixel correspondentes são armazenados sucessivamente em memórias de armazenador para modular a impressora que gera uma impressão da imagem original. Dessa forma, a imagem original é impressa a partir dos dados incluindo i-dentificadores compreendendo números de índice de bloco que se referem a uma forma de representações de armazenamento de base de dados dos blocos de pixel.
Em uma patente U.S. 4013828, é descrito um método de processamento de uma imagem, onde a imagem é digitalizada e processada dither nos grupos de elemento de imagem de tamanho predeterminado. Cada grupo de elemento de imagem corresponde a um grupo correspondente de células de um painel de exibição localizado remotamente. À medida que cada grupo de elementos de imagem é digitalizado, um padrão representado pelos bits de imagem dithered correspondentes ao grupo de elemento de imagem é comparado com um dicionário de padrões armazenados em uma primeira memória. Se o padrão não estiver entre os armazenados na primeira memória, o mesmo recebe uma palavra código associada e é registrado na memória. Ademais, ambos o padrão e sua palavra código são transmitidos para o painel de exibição localizado remotamente onde são armazenados em uma segunda memória; a segunda memória é então acessada e células individuais de um grupo de célula correspondente à imagem digitalizada são energizadas de acordo com o padrão armazenado na segunda memória. Se um padrão digitalizado é igual a um já armazenado na primeira memória, apenas essa palavra código associada com esse padrão é transmitida para o local remoto para alcançar uma redução no fluxo de dados entre a primeira memória e a segunda memória, isto é, pela reutilização de dados que já foi transferida para a segunda memória. No entanto, o método não comprime diretamente o fluxo de dados em um sentido convencional.
Em uma patente UK publicada GB 2362055, é descrito um método de codificação de uma imagem, onde o método inclui: (a) divisão da imagem em blocos de imagem; (b) codificação dos blocos de imagem de tal forma que os blocos de imagem sejam comparados com os blocos já existentes em uma base de dados, e escolha de um bloco existente da base de dados que é uma combinação boa o suficiente para uma correspondente dentre os blocos de ima- gem; e (c) codificação dos blocos de imagem com referência aos códigos representativos dos blocos já existentes.
O método emprega uma biblioteca de códigos, isto é, uma base de dados. No entanto, por conta dos dados em associação com os elementos de base de dados não possuírem qualquer conexão um com o outro, a realização de buscas na base de dados para encontrar combinações é difícil e exige recursos de computação consideráveis à medida que o tamanho da base de dados é aumentado. Inversamente, quando a base de dados é pequena, a combinação dos blocos de imagem com os blocos já existentes na base de dados é comprometida, com um resultado de uma imagem não poder ser construída a partir de dados codificados gerados pelo método a um grau suficiente de qualidade. No entanto, o método inclui a criação de novos elementos se combinações suficientemente boas não forem encontradas, onde o novo elemento é transmitido juntamente com um valor de referência que identifica o mesmo.
A utilização dos dados digitais, por exemplo, vídeo, imagem, gráficos e áudio, está crescendo rapidamente à medida que cada ano passa. Por conta de tal utilização, a quantidade de dados sendo armazenada e transmitida também aumenta rapidamente como uma função do tempo de progresso. Ademais, tal aumento nos dados sendo armazenado e transmitido exige cada vez mais recursos para os dispositivos de hardware, por exemplo, mais energia elétrica consumida para o fornecimento de mais capacidade de processamento e maiores larguras de banda de transmissão de comunicação. Um gerador de imagem como descrito em um pedido de patente U.S. publicado US 2010/322.301 (requerente: Gurulogic Microsystems Oy) define uma solução técnica que soluciona como economizar bytes e gerar imagens variáveis pela utilização de uma base de dados. No entanto, existe a necessidade de um codificador e um decodificador correspondente com base no uso de uma base de dados avançada, que é operável para distribuir muitos tipos diferentes de bases de dados de uma forma mais eficiente, para uso com todos os tipos de dados digitais, por exemplo, imagens, vídeo, gráficos e conteúdo de áudio.
Sumário
A presente invenção busca fornecer um método aperfeiçoado de codificação de dados fonte, por exemplo, dados de imagem capturados, dados de áudio e similares, para gerar os dados de saída codificados correspondentes, e também um codificador operável para implementar o método de codificação de dados fonte.
Ademais, a presente invenção busca fornecer um método aperfeiçoado de decodificação de dados codificados para gerar os dados de saída decodificados correspondentes.
De acordo com um primeiro aspecto, é fornecido um método como reivindicado na reivindicação em anexo 1; é fornecido um método de codificação de dados fonte para gerar os dados codificados correspondentes para a transmissão ou armazenamento, onde os dados fonte incluem pelo menos um dentre dados de áudio, dados de imagem, dados de vídeo, dados de gráfico, dados multidimensionais, dados de medição, caracterizado pelo fato de o método incluir: (a) a combinação de uma ou mais partes dos dados fonte com um ou mais elementos (E) em uma ou mais bases de dados, onde os um ou mais elementos (E) são representativos dos um ou mais blocos de dados correspondentes, e a gravação dos valores de referência (R) que se referem a uma ou mais partes dos dados fonte para um ou mais elementos combinados (E); e (b) a inclusão dos valores de referência (R) nos dados codificados juntamente com uma ou mais bases de dados e/ou informação identificando as uma ou mais bases de dados, onde o método inclui adicionalmente: (c) a divisão dos dados fonte em áreas possuindo um identificador de área singular (U); (d) a coleta de amostras específicas de área das áreas e computação dos valores de referência correspondentes (R) com base nas amostras; e (e) a verificação de se os valores de referência (R) obtidos a partir das computações aplicadas aos dados fonte já foram armazenados em uma ou mais bases de dados ou transmitidos, e o armazenamento e/ou transmissão dos valores de referência (R), ou dos valores de referência (R) em um estado comprimido, para identificação singular dos elementos (E) nos dados codificados ou armazenamento e/ou transmissão dos dados fonte codificados e/ou originais nos dados codificados e, opcionalmente, o armazenamento como um novo elemento (E) em uma ou mais bases de dados em um caso no qual os valores de referência (R) não foram previamente armazenados em uma ou mais bases de dados.
A presente invenção é vantajosa visto que a invenção fornece um codec que é capaz de alcançar uma maior qualidade de conteúdo de áudio e gráficos, imagem e vídeo decodificado, enquanto utiliza menos bits de dados a serem comunicados em comparação com os codecs conhecidos atualmente.
Em (c), o identificador de área singular (U) descreve um tamanho, um formato e uma localização do bloco de dados de forma singular. O tamanho é opcionalmente um tamanho fixo, por exemplo, 32 valores de dados, valores de dados de 8 x 8, ou o tamanho depende opcionalmente de um tipo de conteúdo de dados, por exemplo, o bloco de dados pelo bloco de dados. Os identificadores de área (U) ou a informação dos identificadores de área (U) são opcionalmente distribuídos, ou são opcionalmente predeterminados.
Com referência à amostra referida em (d), é opcionalmente possível se utilizar todas as amostras dos dados quando da computação do valor de referência (R) ou apenas de parte do mesmo. Ademais, é opcionalmente possível se utilizar apenas parte das amostras, resultando, assim, em um desempenho mais rápido e maior precisão na área correspondente das amostras selecionadas. É também opcionalmente possível se utilizar a ponderação de amostras quando da computação do valor de referência (R) para fornecer um ou mais benefícios desejados em comparação com a ponderação que é igual. Um método de amostragem empregado pode ser selecio nado com base nas necessidades em um caso individual, por exemplo, para aperfeiçoar a robustez ou para melhorar as características dos dados.
Os valores de referência (R) são opcionalmente construídos como se segue: (i) é possível se computar vários valores de dados para o blo- co/pacote; um dos quais pode ser, por exemplo, um valor de referência computado dos valores de dados do bloco/pacote inteiro e em adição um ou mais valores de referência computados dos valores de dados dos sub- blocos/pacotes; (ii) o valor de referência do elemento pode consistir de múltiplas partes tal como amplitude, desvio-padrão, média, mínimo, máximo, hash, índice e assim por diante; e (iii) os valores de referência podem ser computados com precisão diferente, por exemplo, como uma função do detalhe espacial presente nos dados a serem codificados.
Opcionalmente, o método inclui o emprego de uma ou mais bases de dados de média zero para implementação de uma ou mais bases de dados. Bases de dados de média zero empregam um ou mais valores de dados transladados ou transformados onde os um ou mais valores de dados transladados ou transformados empregam uma capacidade de memória de dados menor em computação com seus valores de dados correspondentes antes de serem transladados ou transformados. Por exemplo, uma base de dados de média zero e gerada pela computação de uma média de todos os valores de dados em um determinado elemento de base de dados em uma base de dados, e então pela subtração da média dos valores de dados de modo que os valores de dados transladados ou transformados possam variar com relação a um valor zero. Tal uma ou mais bases de dados de média zero são potencialmente menores em tamanho e são mais eficientemente comprimidas quando surge a necessidade de se comunicar os mesmos através de uma rede de comunicação. Opcionalmente, um elemento de base de dados de uma base de dados de média zero é muito raramente uma média zero. No entanto, ainda é um elemento de base de dados no qual, pelo incremento do mesmo por um ou pela redução do mesmo por um, é possível se obter uma nova média que é mais distante de zero do que a média desse elemento de base de dados, ou pelo menos tão distante de zero quanto a média desse elemento de base de dados. A razão para isso é como se segue: a média de um bloco de dados original determinado é frequentemente não um inteiro, mas, ao invés disso, um número real, isto é, um número de ponto flutuante, e, portanto, quando a parte inteira é subtraída da média, isto é, de todos os valores de dados do elemento, então a parte fracionada estará na faixa (-0,5...0,5] ou na faixa [-0,5...0,5).
A finalidade da média zero é preservar espaço, isto é, utilização de memória, em uma ou mais bases de dados, mas não na transferência de dados. Na prática, o tamanho de dados para um bloco individual aumenta quando a média zero é utilizada, visto que, ao invés da faixa dinâmica original, um bit adicional é necessário para expressar os valores de média zero, visto que o bit de sinal é então necessário para cada valor de elemento. A necessidade da utilização do bit de sinal real pode ser removida do armazenamento em base de dados pela utilização de um valor de pedestal predeterminado com o elemento de base de dados de média zero. A faixa dinâmica dos valores de elemento de base de dados também pode ser reduzida por quantização, o que perderá alguma informação. Ademais, tabelas de consulta podem ser utilizadas para compressão dinâmica, mas tal abordagem também resulta em informação sendo perdida. No entanto, com os elementos de média zero, nenhum elemento novo precisa ser inserido na base de dados quando das mudanças na média, mas, ao invés disso, o mesmo elemento pode ser reutilizado, e dessa forma, um elemento é adequado para todas as médias na faixa dinâmica em questão. Se a base de dados propriamente dita é transmitida, então apenas um elemento precisa ser transmitido ao invés de, por exemplo, 256 elementos (com dinâmica de 8 bits), isto é, a variação da média de referência não insere novos elementos na base de dados, mas, ao invés disso, a média é utilizada juntamente com o elemento na base de dados para construir o bloco de dados final.
Opcionalmente, a uma ou mais bases de dados são localizadas em um ou mais servidores, por exemplo, um ou mais servidores pertencentes a uma terceira parte, por exemplo, a um ou mais provedores de serviço. Mais opcionalmente, o uso de uma ou mais bases de dados é sujeito ao pagamento de uma taxa, por exemplo, uma taxa de assinatura e/ou uma taxa por utilização para acessar as uma ou mais bases de dados.
Opcionalmente, quando da implementação do método, a uma ou mais bases de dados incluem uma ou mais bases de dados estáticas e/ou uma ou mais bases de dados dinâmicas.
Um valor de referência (R) consiste em valores que foram calculados com base em amostras de dados, mas pode conter outras partes também. Adicionalmente, o valor de referência é na verdade um conceito inexato. Em outras palavras, os valores de referência são calculados para fins de busca rápida, e, portanto, de haver muitos dos mesmos e sua precisão pode ser muito grande ou, alternativamente, muito pequena.
No entanto, com relação a um valor de referência transmitido (R), isso se refere a um valor que identifica individualmente um bloco em questão entre o codificador e o decodificador, e é, com base nesse valor de referência transmitido (R) que os elementos são armazenados na base de dados. Para uma base de dados estática, o valor de referência transmitido (R) contém tipicamente uns poucos valores de referência quantizados ou mais precisos (R) que foram utilizados na busca, e frequentemente também algum valor que se refere a um número ordinal. Para uma base de dados dinâmica, o valor de referencia transmitido (R) é normalmente apenas um valor que descreve a ordem de construção desse elemento, e sua probabilidade de ocorrência.
Uma base de dados estática é normalmente não modificada, e, dessa forma, o valor de referência transmitido (R) é sempre igual para cada elemento (E), tanto no codificador quanto no decodificador. Por outro lado, uma base de dados dinâmica pode ser alterada continuamente; visto que alguns elementos (E) se tornam mais prováveis, seu valor de referência (R) opcionalmente diminui continuamente de modo que possa ser comprimido de forma mais eficiente. No entanto, será apreciado que mesmo um valor de referência transmitido dinamicamente (R) contém opcionalmente partes que tem relação com as amostras do bloco, mas isso não é obrigatório.
No entanto, com relação à busca por um elemento dinâmico (E), isso também pode opcionalmente ser adicionalmente acelerado por ter-se valores de referência correspondentes (R) que foram construídos a partir de amostras do bloco armazenadas com boa precisão, para cada elemento (E). A busca em uma base de dados dinâmica é adicionalmente opcionalmente acelerada pelo armazenamento dos elementos (E) em algum tipo de ordem de probabilidade, e, portanto, um elemento (E) que ocorre frequentemente é encontrado mais rapidamente. Também é notado que, devido ao valor de referência transmitido (R) de uma base de dados estática conter a parte mencionada acima que se refere a um número ordinal, essa parte, especi-almente se tiver vários bits de comprimento, também é opcionalmente utilizada dinamicamente se desejado, assim como o valor de referência transmitido acima (R) de uma base de dados dinâmica.
No entanto, esse tipo de dinâmica em uma base de dados estática determinada é frequentemente não uma característica desejada, visto que em tal caso, toda a corrente de dados terá que ser codificada a partir de seu começo até a posição de bit utilizada até que possa ser garantido qual elemento é referido em qualquer caso determinado. Portanto, uma vantagem muito importante de uma base de dados estática, isto é, que não é ambígua e explicita, seria perdida. Uma razão de compressão ligeiramente melhor é potencialmente alcançada, mas simultaneamente o pulo livre associado quando da decodificação de dados, que foi obtido pela parte dinâmica do valor de referência (R), seria perdido.
Em vista disso, a utilização de uma base de dados dinâmica é opcionalmente beneficamente limitada por tempo, caso no qual esses pulos mencionados acima em dados podem ser executados de tal forma que a decodificação seja resumida no ponto de reconfiguração da base de dados dinâmica. Uma segunda vantagem principal de uma base de dados estática é que e sempre conhecida de antemão da codificação sendo iniciada, e, portanto, seus elementos (E) frequentemente não precisam ser transmitidos para o decodificador, nem para o codificador. Em outras palavras, existem valores de referência (R), valores de referência quantizados (R), números ordinais e valores de referencia transmitidos (R) (isto é, índices), que consistem em combinações do primeiro, e que se referem a um elemento singular (E) na base de dados.
Dessa forma, quando uma busca é conduzida no codificador, valores de referência cada vez mais precisos (R) podem ser utilizados do que são transmitidos a partir do codificador para um arquivo ou para o decodificador. É benéfico também para o codificador armazenar para cada base de dados uma seleção de valores de referência (R) que é o maior e mais preciso possível, de modo a garantir que a busca seja rápida e precisa, isto é, apenas poucas verificações são necessárias, mas ainda raramente faltando um melhor elemento (E).
Opcionalmente, o método utiliza pelo menos um dentre: (a) uma ou mais bases de dados estáticas são geradas pela seleção de elementos de uma ou mais bases de dados dinâmicas; (b) a informação presente em um ou mais pontos de dados de fonte é processada para gerar um ou mais elementos (E) para inclusão em uma ou mais bases de dados dinâmicas; e (c) a seleção de elementos (E) de uma ou mais bases de dados anteriores e incluindo as mesmas nas uma ou mais bases de dados dinâmicas para uso com os dados codificados.
Ademais, a presente invenção fornece benefícios do tamanho de dados reduzido no armazenador de dados, por exemplo, na memória de dados, portador de dados e similar, que economiza recursos de computação, consumo de energia elétrica e tempo de carregamento de dados.
Mais opcionalmente, no método, os Provedores de Serviço de Internet (ISPs) em torno do mundo podem fornecer servidores de base de dados estáticos mais rápidos nas Redes de Área Local (LAN), permitindo, assim, uma transferência de dados mais eficiente, visto que, em operação, apenas uma quantidade relativamente pequena de novos blocos de dados é enviada, e os blocos de dados de referência da base de dados determinada são recebidos a partir de um servidor de base de dados estática em uma LAN determinada. Opcionalmente, o método é implementado em um codificador que é acoplado através de uma rede de comunicação a uma ou mais das bases de dados. Mais opcionalmente, pelo menos uma das uma ou mais bases de dados está em uma rede de área local mutuamente similar (LAN) da rede de comunicação que a decodificador. Opcionalmente, uma ou mais bases de dados são hospedadas em um ou mais servidores de dados. Por exemplo, o servidor de base de dados é opcionalmente implementado de uma forma que é espacialmente adjacente a um codec implementando o método, por exemplo, em uma memória espacialmente adjacente.
Opcionalmente, no método, os valores de referência (R) incluem múltiplas partes que soam separadamente codificadas para inclusão nos dados codificados. Mais opcionalmente, no método, uma ou mais das múltiplas partes são combinadas antes de serem codificadas para inclusão nos dados codificados. Opcionalmente, as múltiplas partes se referem às características de variação V, média M e amplitude A de um ou mais blocos de dados acessados através do uso do valor de referência (R).
Opcionalmente, um desvio-padrão pode ser utilizado ao invés da variação V, e mais opcionalmente um modo mínimo, máximo e mediano são utilizados como novos valores de referência (R). No que diz respeito ao mínimo, máximo e amplitude, apenas dois são opcionalmente necessários; o terceiro pode ser beneficamente calculado com base nos outros dois. Ademais, vários valores hash diferentes e valores CRC também são valores de referência válidos (R) quando um ponto perfeito é buscado, ou quando existe o desejo de se distinguir os blocos possuindo, do contrário, valores de referência similares (R) na combinação de blocos de uma outra dentre as outras formas além de pela utilização de um número ordinal. Tal abordagem é benéfica visto que os valores hash e CRC podem ser calculados a partir dos dados de um bloco de dados determinado, e, portanto, não são dependentes da ordem de transmissão.
Opcionalmente, todos os valores podem ser utilizados na busca, e com precisão total, mas quando os valores de referência (R) são transmiti dos ou elementos (E) são armazenados na base de dados, determinados valores de referência são selecionados (0 - n itens) com uma precisão determinada, e opcionalmente também seções ou partes que tem relação com um número ordinal, que identificam os elementos de base de dados armazenados e seus valores de dados explicitamente e de forma não ambígua.
A precisão e a quantidade de parâmetros de um valor de referência transmitido (R) podem depender também de um parâmetro de qualidade (Q). Por exemplo, um valor de referência (R) transmitido a partir de uma base de dados estática com boa qualidade conterá um valor médio de 8 bits, um valor de desvio-padrão de 8 bits, um valor de amplitude de 6 bits, um valor mínimo de 6 bits e um número ordinal de 8 bits, ao passo que para um valor de referencia (R) transmitido a partir de uma base de dados estática com qualidade inferior, um valor médio de 7 bits, um valor de desvio- padrão de 7 bits, um valor de amplitude de 5 bits e um número ordinal de 4 bits serão opcionalmente suficientes.
No que diz respeito a uma base de dados dinâmica, um valor de referencia (R) transmitido a partir de uma base de dados dinâmica com boa qualidade opcionalmente inclui um número ordinal expressado com, por exemplo, 16 bits, e com a qualidade inferior, por exemplo, 10 bits seriam suficientes. Os valores de referência armazenados (R) e os valores de referência (R) utilizados na busca são, por exemplo, opcionalmente expressados com 16 bits para sua média e para o desvio-padrão, e em conjunto com a informação descrevendo a dinâmica dos dados, por exemplo, 8 bits para amplitude, modo mínimo, máximo e mediano. Ademais, será apreciado também que todos os valores de referencia (R) que são dependentes dos dados são opcionalmente calculados a partir de amostras do bloco de dados decodificados, por exemplo, tanto no codificador quanto no decodificador, e, portanto, ambos o codificador e o decodificador são sempre capazes de calcular os mesmos com a mesma precisão e com a precisão desejada para si mesmos.
O codificador precisa de precisão total para a busca rápida, e, adicionalmente, o codificador e decodificador precisam ter até mesmos es ses valores já calculados, pelo menos com a precisão necessária para a transmissão, de modo que os elementos de base de dados (E) possam ser armazenados no endereço de base de dados correto para uso futuro, como indicado pelo valor de referência transmitido (R). Será apreciado também que a quantização e compressão de um valor de referência (R) são coisas diferentes, apesar de ambos reduzirem a quantidade de dados codificados. No entanto, a compressão é recuperável, ao passo que a quantização perde informação de forma desejada, a fim de tornar o valor mais fácil de utilizar, por exemplo, diminuindo um tamanho de uma base de dados e uma quantidade de dados a ser transmitida explicitamente.
Opcionalmente, no método, os valores de referência (R) incluem informação para orientar a busca de um ou mais elementos correspondentes (E) em uma ou mais bases de dados.
Opcionalmente, no método, os um ou mais elementos (E) incluem um ou mais parâmetros dos quais um ou mais blocos de dados correspondentes podem ser computados pela interpolação. Em adição a, ou alternativamente à interpolação, outras computações tal como decimação, extrapolação e cropping são opcionalmente empregadas. Essas pertenceriam a todos os ditos elementos de base de dados (E) que podem ser utilizados pelo escalonamento ascendente ou descendente, ou pelo aumento dos valores para blocos maiores, ou pela utilização apenas de uma seção menor do elemento. A extrapolação e cropping obviamente demandam também um pouco de informação indicando onde a extrapolação ocorrerá e em que parte do bloco cropping deve ser executado, mas a interpolação e decimação podem funcionar automaticamente de acordo com uma relação entre o tamanho do bloco a ser decodificado e o tamanho do bloco do elemento de base de dados (E). Opcionalmente, os métodos de interpolação e decimação podem ser armazenados e/ou transmitidos para os dados codificados ou podem ser pré-selecionados.
De forma opcional, no método, as uma ou mais bases de dados dinâmicas são criadas por uma duração de tempo limitada, depois da qual são eliminadas.
Opcionalmente, o método inclui a reestruturação de uma ou mais das bases de dados como uma função de uma frequência de elementos de acesso (E) dentro das bases de dados para criação de elementos acessados com maior frequência (E) mais rapidamente para acessar utilizando os valores de referência (R).
Opcionalmente, no método, os elementos (E) de uma ou mais bases de dados dinâmicas são gerados quando combinações de uma ou mais partes dos dados fonte com um ou mais elementos (E) nas uma ou mais bases de dados estáticas não podem ser encontrados ou elementos (E) utilizam muitos bits em seus um ou mais valores de referência transmitidos (R).
Opcionalmente, no método, a combinação de uma ou mais partes dos dados fonte com um ou mais elementos (E) das uma ou mais bases de dados é feita dentro de um limite de qualidade, onde o limite de qualidade é dinamicamente alterado durante a geração dos valores de referência (R).
Opcionalmente, no método, os um ou mais valores de referência (R) são utilizados para reconstruir uma ou mais partes correspondentes dos dados fonte utilizando um ou mais elementos (E) definidos pelos um ou mais valores de referência (R), e onde erros são determinados entre as uma ou mais partes reconstruídas e uma ou mais partes originais correspondentes nos dados fonte, e os erros são codificados e incluídos nos dados codificados.
Opcionalmente, no método, os um ou mais blocos de dados cor-respondendo a um ou mais elementos (E) são pelo menos um dentre: 1-D, 2-D ou 3-D, poligonal quando visualmente exibido, retangular quando visualmente exibido, elíptico quando visualmente exibido, circular quando visualmente exibido, alongado quando visualmente exibido, triangular quando visualmente exibido.
Opcionalmente, no método, um ou mais elementos (E) de uma primeira base de dados são operáveis para fazer referência a um ou mais elementos (E) presentes em uma ou mais dentre outras das uma ou mais bases de dados. Em outras palavras, um elemento (E) em uma primeira ba se de dados pode se referir a um elemento (E) em uma segunda base de dados a partir da qual um bloco de dados correspondente é derivado.
Opcionalmente, no método, um ou mais valores de referência (R) incluídos nos dados codificados estão em uma forma comprimida.
Opcionalmente, no método, as uma ou mais bases de dados, são selecionadas e/ou variadas de tamanho dependendo de uma natureza do conteúdo presente nos dados fonte.
De acordo com um segundo aspecto, é fornecido um codificador para codificar os dados fonte para gerar os dados codificados correspondentes (30), caracterizado pelo fato de o codificador incluir: (a) primeiro hardware de processamento de dados para combinar uma ou mais partes dos dados fonte para um ou mais elementos (E) em uma ou mais bases de dados, onde um ou mais elementos (E) são representativos de um ou mais blocos de dados correspondentes, e gravação dos valores de referência (R) que se refere a uma ou mais partes dos dados fonte a um ou mais elementos combinados (E); e (b) segundo hardware de processamento de dados para incluir os valores de referência (R) nos dados codificados juntamente com uma ou mais bases de dados e/ou informação identificando uma ou mais bases de dados, onde os dados fonte incluem pelo menos um dentre: dados de áudio, dados de imagem, dados de vídeo, dados gráficos, dados multidi- mensionais, dados de medição; onde o codificador opera para: (c) receber os dados fonte em uma forma de um ou mais blocos de dados, para dividir um ou mais blocos de dados em áreas possuindo um identificador de área singular (U); (d) para coletar amostras específicas de área das áreas de um ou mais blocos de dados e para computar os valores de referência correspondentes (R) com base nas amostras; e (e) para verificar se os valores de referência (R) obtidos como resultado das computações aplicadas a um ou mais blocos de dados já fo ram armazenados em uma ou mais bases de dados ou transmitidos, e para armazenar e/ou transmitir os valores de referência computados (R) ou os valores de referência comprimidos para os elementos de identificação singular (E) nos dados codificados ou para armazenar e/ou transmitir os dados fonte codificados e/ou originais para os dados codificados e, opcionalmente, armazenar como um novo elemento (E) dentro de uma ou mais bases de dados em um caso no qual os valores de referência (R) que não foram previamente armazenados em uma ou mais bases de dados.
Opcionalmente, no codificador, as uma ou mais bases de dados incluem uma ou mais bases de dados estáticas e/ou uma ou mais bases de dados dinâmicas. Opcionalmente, o codificador utiliza pelo menos um dentre: (a) uma ou mais bases de dados estáticas dão geradas pela seleção de elementos a partir de uma ou mais bases de dados dinâmicas; (b) a informação presente em uma ou mais partes dos dados fonte é processada para gerar um ou mais elementos (E) para inclusão em uma ou mais bases de dados dinâmicas; e (c) a seleção de elementos (E) a partir de uma ou mais bases de dados anteriores e incluindo os mesmos nas uma ou mais bases de dados dinâmicas para uso com os dados codificados.
Opcionalmente, o codificador é acoplado através de uma rede de comunicação a uma ou mais bases de dados, onde pelo menos uma dentre uma ou mais bases de dados está em uma rede de área local (LAN) mutuamente similar da rede de comunicação com relação ao codificador. Opcionalmente, as uma ou mais bases de dados são implementadas pelo emprego de um ou mais servidores de dados.
Mais opcionalmente, no codificador, o primeiro hardware de pro-cessamento de dados opera para gerar os valores de referência (R) para incluir múltiplas partes que são separadamente codificadas para inclusão nos dados codificados. Mais opcionalmente, o codificador opera para combinar uma ou mais das múltiplas partes antes da codificação das mesmas para inclusão nos dados codificados.
Opcionalmente, codificador, os valores de referência (R) incluem informação para orientar a busca de um ou mais elementos correspondentes (E) nas uma ou mais bases de dados.
Opcionalmente, no codificador, os valores de referência (R) incluem parâmetros dos quais um ou mais blocos de dados correspondentes podem ser computados pela interpolação. Opcionalmente, ou alternativamente, no codificador, a decimação, extrapolação e cropping são empregados. Tais computadores pertencem de forma benéfica a todos os elementos da base de dados que podem ser utilizados pelo escalonamento ascendente ou descendente, ou pelo aumento dos valores para blocos maiores, ou pela utilização de apenas uma seção menor do elemento. A extrapolação e cropping demandam adicionalmente informação referente a onde a extrapolação ocorrera, e que parte do bloco será cropped, mas a interpolação e decimação podem funcionar automaticamente de acordo com a relação entre o ta-manho do bloco a ser decodificado e o tamanho do bloco do elemento de base de dados. Opcionalmente, os métodos de interpolação e decimação podem ser armazenados e/ou transmitidos para os dados codificados ou podem ser pré-selecionados.
Opcionalmente, no codificador, as uma ou mais bases de dados dinâmicas são criadas por uma duração de tempo limitada, depois do que são eliminadas.
Opcionalmente, o codificador opera para reestruturar uma ou mais bases de dados como uma função de uma frequência de elementos de acesso (E) dentro das bases de dados para criar elementos acessados mais frequentemente (E) mais fáceis de serem acessados utilizando os valores de referencia (R).
Opcionalmente, no codificador, os elementos (E) de uma ou mais bases de dados dinâmicas são gerados quando combinações de uma ou mais partes dos dados fonte com um ou mais elementos (E) em uma ou mais das bases de dados estáticas não podem ser encontrados ou elementos (E) utilizam muitos bits em seus valores de referência transmitidos (R).
Opcionalmente, no codificador, a combinação de uma ou mais partes dos dados fonte com um ou mais elementos (E) de uma ou mais bases de dados é feita pelo primeiro hardware de processamento de dados dentro de um limite de qualidade, ode o limite de qualidade é dinamicamente alterado durante a geração dos valores de referência (R).
Opcionalmente, no codificador, o primeiro hardware de processamento de dados opera para utilizar um ou mais valores de referência (R) para reconstruir uma ou mais partes correspondentes de dados fonte utilizando um ou mais elementos (E) definidos por um ou mais valores de referência (R), e onde o primeiro hardware de processamento de dados opera para identificar os erros entre as uma ou mais partes reconstruídas e uma ou mais partes originais correspondentes nos dados fonte, e o segundo hardware de processamento de dados opera para codificar os erros e incluir os mesmos nos dados codificados.
Opcionalmente, no codificador, os um ou mais blocos de dados correspondendo a um ou mais elementos (E) são pelo menos um dentre: 1D, 2-D ou 3-D, poligonal quando visualmente exibido, retangular quando visualmente exibido, elíptico quando visualmente exibido, circular quando visualmente exibido, alongado quando visualmente exibido, triangular quando visualmente exibido.
Opcionalmente, no codificador, um ou mais elementos (E) de uma primeira base de dados operam para fazer referência a um ou mais elementos (E) presentes em uma ou mais outra das uma ou mais bases de dados.
Opcionalmente, no codificador, um ou mais valores de referência (R) incluídos nos dados codificados estão em uma forma comprimida.
Opcionalmente, no codificador, o primeiro hardware de processamento de dados opera para selecionar uma ou mais bases de dados dependendo de uma natureza do conteúdo presente nos dados fonte.
De acordo com um terceiro aspecto, é fornecido um método de decodificação de dados codificados para gerar dados de saída decodificados correspondentes, caracterizados pelo fato de o método incluir: (a) o recebimento de dados codificados incluindo valores de re- ferencia (R) e informação referente aos identificadores de área e informação referente a uma ou mais bases de dados; (b) a decodificação a partir dos dados codificados dos valores de referência (R); (c) o acesso a um ou mais elementos (E) a partir de uma ou mais bases de dados como direcionado pelos valores de referência (R), onde um ou mais elementos (E) são representativos de um ou mais blocos de dados correspondentes, e (d) a geração de um ou mais blocos de dados para montagem de dados de saída decodificados totais correspondentes. Opcionalmente, o método inclui (e) a manutenção de dados em uma base de dados onde os dados incluem pelo menos um dentre dados de áudio, dados de imagem, dados de vídeo, dados gráficos, dados multidimensionais, dados de medição correspondentes aos valores de referência (R); (f) a geração de identificadores de área (U) com base na informação referente aos identificadores de área incluídos nos dados codificados; (g) o recebimento ou recuperação a partir dos dados codificados de um valor de referência (R) correspondente a um ou mais identificadores de área (U); (h) a recuperação a partir da base de dados com base no valor de referência (R) para um ou mais dados de identificador de área (U) correspondentes correspondendo ao valor de referência (R); e (i) a geração, com base nos dados recuperados a partir da base de dados, de um bloco de dados que é montado nos dados de saída decodificados totais com base no identificador de área (U).
Com relação a uma etapa (c) do método, deve-se notar que os valores de referência (R) para os elementos (E) no decodificador são tais como os utilizados na transmissão, isto é, quantizados, e consistindo de várias seções. Para um e o mesmo elemento (E), vários valores de referência (R) podem existir, visto que o valor de referência (R) pode estar em uso simultaneamente em uma ou mais bases de dados dinâmicas e/ou em uma ou mais bases de dados estáticas. Ademais, alguns blocos de dados de boa qualidade podem ser utilizados também em um bloco de dados de menor qualidade, e então a parte do valor de referência (R) em diferentes níveis de quantização produzirá um valor de referência diferente (R) do bloco. Em outras palavras, um determinado elemento (E) pode, opcionalmente, possuir vários valores de referência (R), mas um valor de referência (R) não pode se referir a vários elementos(E) a menos que existam em diferentes bases de dados, ou que sejam utilizados para diferentes qualidades, ou não contenham tal propriedade para o elemento (E) que possa ser selecionado explicitamente ou sem ambiguidade a partir de várias alternativas.
Por exemplo, se tais elementos (E) forem utilizados onde o valor médio foi omitido, então um bloco com uma amplitude grande que foi gerado pela utilização de um valor médio grande pode ser utilizado como uma negação para um bloco que possui um valor médio pequeno, ao passo que ainda pode ser utilizado para um bloco com um valor médio grande. Se se tentar comutar esse um pelo outro, então isso resultaria em valores que não estariam dentro da faixa dinâmica dos valores de dados, por exemplo, dados de 8 bits, para os quais elementos de base de dados de valor de dados de +/- 8 bits sem valor médio são utilizados. Se, por exemplo, a amplitude for de 200 e o valor médio 1 mediante armazenamento for 220 e o valor médio 2 mediante utilização for 30, então o uso de uma negação, ou não utilização de uma negação, seria claramente dedutível. Nesse caso, o valor de dados de um elemento de base de dados sem um valor médio pode ser, por exemplo, -170, e pode não ser utilizado em combinação com o valor médio 2, mas como uma negação, +170 para o valor de dados em questão pode ser válido. Dessa forma, o valor de referência transmitido pode, portanto, conter outra informação além de seções de valores de referência ou números ordinais, apesar de na prática essa outra informação ser frequentemente vantajosamente transmitida como uma peça separada de informação de codificação. Por exemplo, com uma base de dados sem um valor médio, apenas o valor médio sozinho é uma peça de informação que é sempre necessária, e pode ser parte do valor de referência (R) ou uma inserção de informação de codificação separada.
De forma correspondente, se for desejável que o mesmo elemento (E) contenha versões giradas ou invertias, então para diferentes variações, pode existir uma seção de informação numérica distinta valor de referência (R), ou, alternativamente, uma distribuição separada da informação de codificação é realizada para denotar a mesma informação. O que é comum com tudo isso é um fato de que para um elemento (E) armazenado na base de dados, diferentes blocos de decodificação podem ser produzidos, dependendo de como esses parâmetros tal como o valor médio, rotação e inversão são configurados, de forma similar para escalonamento, cropping, extrapolação e assim por diante.
Uma parte dessas peças de informação é tal que com base em outra informação já recebida, ou com base em blocos decodificados anteriormente, uma variação correta pode ser deduzida, mas, de forma correspondente, uma parte terá que ser transmitida de modo a tornar um método de decodificação não ambíguo, se uso de alternativas for permitido no deco- dificador. Por exemplo, uma relação entre a amplitude e o valor médio com a negação é dedutível com grandes amplitudes e com valores médios pequenos ou grandes, mas do contrário, não é dedutível. De forma correspondente, com base nos blocos decodificados anteriormente, pode ser frequentemente deduzido com base na conectividade qual rotação ou inversão pode ser a correta. No entanto, em todos os casos onde uma dedução não é clara de forma não ambígua, é necessário se transmitir informação adicional, como parte do valor de referencia (R) ou como uma peça separada de informação.
Opcionalmente, no método, as uma ou mais bases de dados incluem uma ou mais bases de dados estáticas e/ou uma ou mais bases de dados dinâmicas.
Opcionalmente, no método, as uma ou mais bases de dados são espacialmente dispostas localmente para o hardware de processamento de dados disposto para executar o método. Mais opcionalmente, no método, as uma ou mais bases de dados são hospedadas em uma LAN que também inclui o hardware de processamento de dados.
Opcionalmente, o método inclui a geração de uma ou mais bases de dados dinâmicas a partir de um ou mais elementos (E) de uma ou mais bases de dados estáticas e/ou a partir da informação fornecida nos dados codificados, onde as uma ou mais bases de dados dinâmicas geradas são empregadas para decodificação dos dados codificados.
Opcionalmente, o método inclui a geração a partir de um ou mais elementos (E) correspondentes a um ou mais blocos de dados que são pelo menos um dentre: 1-D, 2-D, 3-D, poligonal quando visualmente exibido, retangular quando visualmente exibido, elíptico quando visualmente exibido, circular quando visualmente exibido, alongado quando visualmente exibido, triangular quando visualmente exibido.
De acordo com um quarto aspecto, é fornecido um decodificador para decodificação de dados codificados para gerar dados decodificados correspondentes, caracterizado pelo fato de o decodificador incluir: (a) primeiro hardware de processamento de dados para o recebimento de dados codificados incluindo os valores de referência (R) e informação referente aos identificadores de área (U) e informação referente a uma ou mais bases de dados; (b) segundo hardware de processamento de dados para decodificação dos dados codificados de valores de referência (R); (c) terceiro hardware de processamento de dados para acessar um ou mais elemento (E) a partir de uma ou mais bases de dados como direcionado pelos valores de referência (R), onde os um ou mais elementos (E) são representativos de um ou mais blocos de dados correspondentes; e (d) quarto hardware de processamento de dados para geração de um ou mais blocos de dados para montagem dos dados de saída decodificados totais correspondentes. Será apreciado que os primeiro e segundo hardwares de processamento de dados podem ser a mesma unidade de processamento ou unidades de processamento separadas. De forma similar, pode haver muitas unidades de processamento realizando as funções dos primeiro e/ou segundo hardwares de processamento. As possibilidades para implementação são inúmeras, e não devem ser limitadas a exemplos descritos aqui. Opcionalmente, o decodificador é configurado: (e) para manter em uma base de dados os valores de referência (R) e dados onde s dados incluem pelo menos um dentre dados de áudio, dados de imagem, dados de vídeo, dados gráficos, dados multidimensionais, dados de medição correspondentes aos valores de referência (R); (f) para gerar identificadores de área (U) com base na informação referente aos identificadores de área incluídos nos dados codificados; (g) para receber ou para recuperar a partir dos dados codificados um valor de referência (R) correspondente a um ou mais identificadores de área (U); (h) para recuperar a partir da memória com base no valor de referencia (R) para um ou mais dos dados de identificador de área (U) correspondendo ao valor de referência (R); e (i) para gerar, com base nos dados recuperados a partir da base de dados, um bloco de dados que é montado nos dados de saída decodificados totais com base no identificador de área (U).
Opcionalmente, no decodificador, as uma ou mais bases de dados incluem uma ou mais bases de dados estáticas e/ou uma ou mais bases de dados dinâmicas.
Opcionalmente, no decodificador, as uma ou mais bases de dados são espacialmente dispostas localmente no hardware de processamento de dados do decodificador. Mais opcionalmente, no decodificador, as uma ou mais bases de dados são hospedadas em uma LAN que também inclui o hardware de processamento de dados do decodificador. Alternativamente, ou adicionalmente, as uma ou mais bases de dados são localizadas no decodificador, por exemplo, em sua memória de dados (RAM, ROM).
Opcionalmente, o decodificador opera para gerar uma ou mais bases de dados dinâmicas a partir de um ou mais elementos (E) e/ou uma ou mais bases de dados estáticas e/ou a partir da informação fornecida nos dados codificados, ode as uma ou mais bases de dados dinâmicas geradas são empregadas para decodificação de dados codificados para gerar os da- dos decodificados correspondentes.
Opcionalmente, o decodificador opera para gerar um ou mais blocos de dados a partir de um ou mais elementos (E), onde um ou mais blocos de dados são pelo menos um dentre: 1-D, 2-D, 3-D, poligonal quando visualmente exibido, retangular quando visualmente exibido, elíptico quando visualmente exibido, circular quando visualmente exibido, alongado quando visualmente exibido, triangular quando visualmente exibido.
De acordo com um quinto aspecto, é fornecido um codec incluindo pelo menos um codificador de acordo com o segundo aspecto para codificação de dados fonte para geração de dados codificados correspondentes, e pelo menos um decodificador de acordo com o quarto aspecto para o recebimento de dados codificados e para decodificação dos dados codificados para geração de dados decodificados correspondentes.
Opcionalmente, o codec é incorporado a um ou mais produtos eletrônicos de consumidor, por exemplo, computadores pessoais (PC), gravadores de vídeo, aparelhos de vídeo, smartphones, dispositivos de jogos, equipamento científico, equipamento médico, aparelho de vigilância, aparelho de segurança, sensores e outro aparelho de medição e câmeras digitais.
Opcionalmente, o codec é implementado de modo que pelo menos o codificador e pelo menos um decodificador compartilhem uma ou mais bases de dados referidas por valores de referência (R) incluídos nos dados codificados.
De acordo com um sexto aspecto, é fornecido um produto de software gravado no meio de armazenamento de dados legível por máquina não transitório, caracterizado pelo fato de o produto de software ser executável no hardware de computação de um codificador para implementação de um método de acordo com o primeiro aspecto.
De acordo com um sétimo aspecto, é fornecido um produto de software gravado em mídia de armazenamento de dados legível por máquina não transitória, caracterizado pelo fato de o produto de software ser executável em hardware de computação de um decodificador para implementação de um método de acordo com o terceiro aspecto.
Será apreciado que as características da invenção são suscetíveis a serem combinadas em várias combinações sem se distanciar do escopo da invenção como definido pelas reivindicações em anexo.
Descrição dos Diagramas
As modalidades da presente descrição serão descritas agora, por meio de exemplo apenas, com referência aos diagramas a seguir, nos quais:
A Figura 1 é uma ilustração esquemática de um codificador e um decodificador, isto é, uma combinação constituindo um codec, de acordo com a presente descrição;
A Figura 2 é uma ilustração esquemática de um novo elemento sendo enviado no codec da Figura 1; e
A Figura 3 é uma ilustração esquemática de múltiplas partes definidas separadamente de um valor de referência comunicado dentro do codec da Figura 1.
Nos diagramas a seguir, 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 se refere a um item identificado por uma linha conectando o número não sublinhado ao item.
Descrição das Modalidades
Quando da descrição das modalidades da presente descrição a seguir, abreviações são empregadas como fornecido na Tabela 1: Tabela 1: Detalhes de acrônimos empregados para descrever modalidades
Figure img0001
Figure img0002
Em uma visão geral, como ilustrado na Figura 1, a presente in venção se refere a um codificador 10 para codificação de dados de fonte 20 para gerar dados codificados correspondentes 30, e um decodificador 50 para receber e decodificar os dados codificados 30 para gerar os dados de- 5 codificados correspondentes 60; em combinação, o codificador 10 e o decodificador 50 constituem um codec 5. Os dados decodificados 60 são opcionalmente uma representação dos dados fonte 20, por exemplo, pelo menos um dentre: áudio, imagens 1D, imagens 2D, imagens 3D, conteúdo e vídeo, dados gráficos, áudio capturado, imagens capturadas, vídeo capturado, AS- 10 CII e dados binários além de dados de medição e dados gerados. O codifi- cador 10 e o decodificador 50 são operáveis para empregar uma ou mais bases de dados 100 para codificação de dados de fonte 20 e para decodificação de dados codificados 30. Ademais, as uma ou mais bases de dados 100 incluem uma ou mais bases de dados estáticas 110 e/ou uma ou mais bases de dados dinâmicas 120 como será descrito em maiores detalhes posteriormente. Opcionalmente, as uma ou mais bases de dados 110, 120 são fornecidas através de um ou mais servidores de dados, por exemplo, espacialmente remotos do codificador 10 e do decodificador 50. Opcionalmente, é fornecida pelo menos uma mesma base de dados 100 para ambos o codificador 10 e o decodificador 50; tal disposição é capaz de fornecer uma maior segurança de dados visto que múltiplas cópias de dados não precisam ser disponibilizadas dentro de uma rede de comunicação de dados, por exemplo, em uma pluralidade de servidores de dados espacialmente espaçados, por exemplo, implementados como rede não hierarquizada de servidores de dados. Alternativamente, opcionalmente, as uma ou mais bases de dados 100 são dispostas de modo que o codificador 10 e o decodifi-cador 50 possuam, cada uma, suas próprias bases de dados de codificador dedicadas e bases de dados de decodificador respectivamente, por exemplo, hospedadas a partir de um ou mais servidores de dados.
Será apreciado que as uma ou mais bases de dados 100 podem ser implementadas em muitas formas diferentes. Por exemplo, quando um ou mais dentre o codificador 10 e o decodificador 50 exige informação de uma ou mais bases de dados 100, por exemplo, implementadas como um ou mais servidores de dados, a informação pode ser fornecida de forma direta, alternativamente em uma forma indireta. De uma forma direta, o codificador 10 e/ou o decodificador 50 envia uma solicitação para um ou mais dos servidores de dados para suprir informação; os um ou mais servidores de dados então suprem a informação para o codificador 10 e/ou o decodificador 50, por exemplo, informação de criptografia, informação de método de codificação, informação de método de decodificação, uma biblioteca de elementos de imagem e assim por diante. De uma forma indireta, o codificador 10 e/ou o decodificador 50 envia uma primeira solicitação para um ou mais dos ser- vidores que, em resposta, fornecem informação, referente a um ou mais outros servidores de onde a informação está disponível; o codificador 10 e/ou o decodificador 50 então envia uma segunda solicitação para um ou mais dos outros servidores de dados para suprir a informação para o codificador 10 e/ou o decodificador 50. Opcionalmente, mais de dois níveis de solicitação, com relação aos servidores de dados, são empregados. Opcionalmente, pelo menos uma dentre a primeira solicitação e segunda solicitação são criptografadas para impedir a codificação e/ou decodificação não autorizada, por exemplo, para impedir a distribuição não autorizada de arquivo, que é um problema sério para a indústria de música contemporânea. Opcionalmente, a primeira solicitação é enviada para um servidor de dados espacialmente remoto, e a segunda solicitação é enviada para um servidor de dados espacialmente próximo; tráfego de informação associada com a primeira solicitação é opcionalmente modesta, sendo, dessa forma, facilmente acomodada pelas redes de comunicação, ao passo que o tráfego de informação associada com a resposta à segunda solicitação pode ser considerável e é mais convenientemente acomodada espacialmente localmente para o codificador 10 e/ou decodificador 50. Opcionalmente, a primeira solicitação inclui a informação de posição indicativa de onde o codificador 10 e/ou decodificador 50 são dispostos espacialmente ou dentro de uma rede de comunicação, e a resposta à primeira solicitação inclui a informação referente a uma base de dados adequada espacialmente mais próxima, ou base de dados adequadamente conectada mais próxima, por exemplo, servidor de dados, para o codificador 10 e/ou decodificador 50 que pode suprir informação de codificação e/ou decodificação relevante para o codificador 10 e/ou decodificador 50. Opcionalmente, a resposta à primeira solicitação fornece ao codificador 10 e/ou ao decodificador 50 com uma escolha de uma pluralidade de bases de dados possíveis que podem suprir a informação adequada; opcionalmente, a escolha é baseada em um ou mais critérios técnicos, por exemplo, conexão de dados mais rápida possível, conexão de dados com menor con-sumo de energia, conexão de dados menos cara, apesar de não limitado a isso. Apesar de uma situação de uma primeira solicitação e uma segunda solicitação ser elucidativa aqui, será apreciado que opcionalmente mais de duas solicitações podem ser empregadas se necessário, por exemplo, múltiplas solicitações, por exemplo, para tornar a decodificação não autorizada de conteúdo codificado ainda mais difícil para alcançar as partes não autorizadas.
Opcionalmente, um ou mais códigos de acesso para permitir o decodificador 50 para obtenção de dados para decodificação de dados de conteúdo são distribuídos a partir de um local central de modo que uma pluralidade de tais decodificadores 50 sejam ativados substancialmente de forma temporal simultaneamente, por exemplo, em um caso de um novo filme de sucesso sendo liberado e distribuído através de uma rede de comunicação, onde a liberação do filme para visualização é desejavelmente coordenado e controlado. Tal controle também permite a censura pós-liberação do conteúdo e vídeo, por exemplo, em um caso de uma injunção em corte ou infração de direitos autorais sendo impostos.
As modalidades da presente invenção empregam de forma benéfica técnicas como descrito para um gerador de imagem como descrito em um pedido de patente U.S. No. US2010/322301 ("Imagem Processor, Imagem Generator and Computer Program"; Inventor - Tuomas Karkkainen; Applicant: Gurulogic Microsystems Oy, 2009) cujo conteúdo é incorporado aqui por referencia. No entanto, as modalidades da presente invenção empregam tais técnicas, e outros, de forma mais eficiente e de uma forma genérica.
Nas modalidades da presente descrição, a uma ou mais bases de dados dinâmicas 120 e seus elementos associados E são criados quando os dados codificados 30 são distribuídos a partir do codificador 10 para o decodificador 50. Ademais, a uma ou mais bases de dados estáticas 110 são beneficamente criadas a partir de uma ou mais bases de dados dinâmicas 120, ou são distribuídas mais cedo antes de os dados codificados 30 serem distribuídos para o decodificador 50, ou é pré-instalados no decodificador 50.
Quando novos elementos de base de dados E são distribuídos para o decodificador 50, os mesmos são opcionalmente enviados juntamente com um ou mais valores de referência R, parcialmente com um valor de referência R, ou sem um valor de referência R, dependendo de um algoritmo de codificação empregado. Beneficamente, o codificador 10 e o decodificador 50 são operacionais para computar todo o valor de referência R, ou uma parte do valor de referência R de um elemento de base de dados determinado E, diretamente a partir de dados que devem ser armazenados no elemento de base de dados determinada E, isso é de uma forma de um bloco de dados reconstruído. Ademais, com relação ao elemento de base de dados determinado E, um mecanismo de detecção de erro é implementado, quando pelo menos uma parte do valor de referência computado R do elemento de base de dados determinado E é distribuído entre o codificador 10 e o de-codificador 50.
O codificador 10 e o decodificador 50 são beneficamente operáveis para codificar e decodificar respectivamente os dados que, pelo menos parte, foram codificados de acordo com os padrões de codificação conhecidos como fornecido na Tabela 2: Tabela 2: Padrões de codificação que são empregáveis em conjunto com as modalidades da presente descrição.
Figure img0003
Na Figura 1, os dados para os elementos E em uma ou mais ba ses de dados 100 são codificados para transmissão do codificador 10 para o decodificador 50, que permite a distribuição de elementos de base de dados E simultaneamente quando dados de imagem codificados, ou outros tipos de dados tal como dados de áudio, dados de vídeo, dados gráficos, dados mul- tidimensionais, dados de medição, dados de texto, dados binários, estão sendo distribuídos. Os elementos E são frequentemente criados a partir de dados codificados, isto é, depois da decodificação. Ademais, a codificação de elementos E de uma ou mais bases de dados 100 permite a distribuição eficiente da base de dados entre o codificador 10 e o decodificador 50, isto é, permitindo o armazenamento eficiente da base de dados 100 nos dispositivos empregados, por exemplo, para implementar o decodificador 50. Em um caso no qual uma ou mais bases de dados estáticas 110 são empregadas, o codificador 10 e o decodificador 50 são tornados cientes das bases de dados disponíveis; alternativamente, o codificador 10 e o decodificador 50 se comunicam mutuamente para determinar quais bases de dados estão disponíveis para uso. Opcionalmente, ambos o codificador 10 e o decodificador 50, por meio de diálogo mútuo, são operacionais para definir quais bases de dados devem ser utilizadas, por exemplo, um ou mais servidores de dados, antes de os dados codificados serem comunicados a partir do codificador 10 para o decodificador 50, onde as bases de dados são empregadas para decodificar os dados codificados 30 no decodificador 50 para gerar os dados decodificados 60.
O codificador 10 e o decodificador 50 são beneficamente empregados em uma grande faixa de aplicações práticas como fornecido na Tabela 3, por exemplo, em várias indústrias: Tabela 3:
Figure img0004
Figure img0005
Beneficamente, tais aplicações práticas como as listadas na Ta bela 3 empregam de forma benéfica um codificador, como descrito em um pedido de patente UK GB1214414.3 e pedido de patente US equivalente No. US 13/584.005 além de pedido de patente Europeu correspondentes EP13002521, todos incorporados aqui por referência, e um decodificador, como descrito em um pedido de patente UK GB1214400.2 e pedido de patente US equivalente US 13/584.047 além de um pedido de patente Europeu correspondente EP13002520, todos incorporados aqui por referência. Pedidos de patente pendentes adicionais tal como GB1218942.9 também com pedido de patente Europeu correspondente EP13003859, GB1303658.7, GB1303661.1, GB1303660.3, GB1312815.2, e GB1312818.6 são todos incorporados aqui por referência.
Em uma visão geral, o codec 5 da Figura 1 opera de modo que dados digitais, por exemplo, vídeo, imagem, gráficos e conteúdo de áudio, seja comunicado a partir do codificador 10 para o decodificador 50 e é frequentemente basicamente ou completamente construído a partir dos elementos de base de dados E derivados de uma ou mais bases de dados 100. As uma ou mais bases de dados 100 utilizadas podem depender de um ou mais fatores: (i) a uma ou mais bases de dados 100 utilizadas podem variar de tamanho, por exemplo, são baseadas no tipo de conteúdo de dados sendo transmitido a partir do codificador 10 para o decodificador 50; (ii) a uma ou mais bases de dados 100 utilizadas podem depen- der de uma qualidade de reconstrução de dados necessária no decodificador 50; (iii) a uma ou mais bases de dados 100 utilizadas podem depender do tamanho de dados a serem transmitidos a partir do codificador 10 para o decodificador 50; (iv) a uma ou mais bases de dados 100 utilizadas podem depender de uma largura de banda disponível para transmissão dos dados codificados 30 do codificador 10 para o decodificador 50; (v) a uma ou mais bases de dados 100 utilizadas podem depender de uma largura de banda disponível entre as uma ou mais bases de dados 100 e o decodificador 50 e/ou o codificador 10; (vi) a uma ou mais bases de dados 100 utilizadas podem depender de um tempo de resposta entre uma ou mais bases de dados 100 e o decodificador 50 e/ou codificador 10; (vii) a uma ou mais bases de dados 100 utilizadas podem depender de um custo, isto é, preço financeiro, de acesso aos dados; (viii) a uma ou mais bases de dados 100 utilizadas podem depender de uma função de erros de dados que surgem nos dados supridos a partir daí; (ix) a uma ou mais bases de dados 100 utilizadas podem depender também das localizações espaciais (geográficas) das bases de dados e são opcionalmente também levadas em consideração; apesar de não limitado a tal seleção.
Ademais, nos dados codificados 30, uma ou mais referências de base de dados R que são comunicadas são armazenadas e enviadas ao invés de blocos de dados codificados. Para se alcançar tal forma de comunicação de dados a partir do codificador 10 para o decodificador 50, uma ou mais das bases de dados estática e dinâmica 110, 120 precisam ser o maior possível. Ao passo que as bases de dados maiores exigem maior capacidade de memória para seu armazenamento, tais bases de dados maiores permitem que o codec 5 alcance uma melhor qualidade de reconstrução nos dados decodificados 60. Beneficamente, codec 5 opera para selecionar en- tre as bases de dados 100 para encontrar uma combinação que seja mais adequada para um determinado tipo de dados a ser comunicado nos dados codificados 30, por exemplo, vídeo, imagem, gráfico e áudio, isto é, para alcançar a utilização eficiente das bases de dados 100 e uma razão de compressão aumentada correspondente. No entanto, será apreciado que os valores de referência de base de dados R existem mais bits de dados quando as bases de dados 100 são maiores e incluem mais elementos E.
Para o uso eficiente de uma ou mais bases de dados 100, existem várias bases de dados estáticas beneficamente geradas 110 para dados digitais comuns, por exemplo, conteúdo de vídeo, imagem, gráficos e áudio. Uma ou mais bases de dados estáticas 110 podem ser utilizadas em conjunto com o codificador 10 para fornecimento de compressão de dados com relação aos dados codificados 30. Por exemplo, uma base de dados estática 110 é selecionada dependendo de um tipo de conteúdo de dados digitais a ser codificado, e as bases de dados estáticas 110 podem variar muito de acordo com seu tamanho, dependendo da capacidade de memória a ser utilizada e também de acordo com a qualidade de reconstrução necessária para ser alcançada no decodificador 50; as bases de dados estáticas 110 podem variar com relação aos tamanhos dos blocos de dados empregados, o número de elementos de base de dados E empregados e assim por diante.
O codificador 10 e o decodificador 50 em combinação constituem o codec 5 como mencionado acima, onde uma ou mais bases de dados dinâmicas 120 são beneficamente utilizadas quando da comunicação de dados a partir do codificador 10 para o decodificador 50. Uma base de dados dinâmica 120 contém frequentemente elementos diferentes E em comparação com uma base de dados estática 110, visto que os elementos E da base de dados dinâmica 120 são tipicamente criados pelo codificador 10 quando não existem elementos adequados suficientes na base de dados estática 110 quando da codificação de dados fonte 20. No entanto, ambos o codificador 10 e o decodificador 50 como mencionado acima podem, opcionalmente, precisar criar uma ou mais bases de dados dinâmicas 120 durante a codificação dos dados fonte 20 e decodificação dos dados codificados cor- respondentes 30, de modo que a compatibilidade entre o codificador 10 e o decodificador 50 possa ser garantida, e os dados decodificados reconstruídos 60 combinem substancialmente, por exemplo, com os dados fonte 20. A uma ou mais bases de dados dinâmicas 120 são opcionalmente criadas para uso temporário, por exemplo, para uma intervalo de quadros de vídeo definido quando os dados codificados 30 incluem conteúdo de vídeo; ademais, as uma ou mais bases de dados dinâmicas 120 são opcionalmente recriadas, por exemplo, a cada segundo, e podem ser utilizadas por um período depois disso por um período de 30 segundos antes de serem eliminadas. O período varia opcionalmente em uma faixa de poucos segundos para todas as cenas de vídeo e capítulos de filme, por exemplo, até minutos de conteúdo de vídeo codificado. Opcionalmente, é possível, de acordo com a presente invenção, se criar uma nova base de dados estática 110 a partir dos elementos E gerados para uma ou mais bases de dados dinâmicas criadas anteriormente; em outras formas, bases de dados dinâmicas criadas 120 podem ser tornadas constantes em seu conteúdo e, depois disso, são operacionais para funcionar como bases de dados estáticas 110.
O codec 5 de acordo com a presente descrição, isto é, compreendendo o codificador 10 em combinação com o decodificador 50, independentemente de qual tipo de base de dados 100 está sendo empregada, se estática ou dinâmica, é capaz em operação de reduzir um tempo de processamento, isto é, processamento de recursos e capacidade de memória de dados necessários, quando do armazenamento e transmissão de dados correspondendo aos dados codificados 30, por exemplo, conteúdo de vídeo, imagem, gráficos e áudio. Tal benefício é de grande importância quando os dados codificados 30 são comunicados através das redes de comunicação de dados, por exemplo, redes de comunicação sem fio e Internet, visto que os dados codificados 30 são menos desafiadores para as redes de comunicação acomodarem, por exemplo, de forma sequenciada em tempo real.
Em comparação com um gerador de imagem, como descrito em um pedido de patente US publicado US2010/322.301, o codec 5 na Figura 1 é capaz de fornecer um alto grau de compressão de dados nos dados codifi- cados 30. A compressão aperfeiçoada se refere ao envio de valores de referência (R) além de informação relacionada com os identificadores de área (U). Os identificadores de área (U) em um contexto da presente descrição são empregados para portar a informação espacial de onde um determinado bloco é derivado nos dados correspondentes, por exemplo, em uma imagem original, nos dados de sensor originais e similares. Beneficamente, o identificador de área (U) descreve o tamanho formato e localização de um bloco de dados nos dados. Opcionalmente, o identificador de área (U) é enviado com um bloco correspondente, mas isso é frequentemente um método muito ineficiente. Beneficamente, quando da implementação das modalidades da presente descrição, a informação referente aos identificadores de área (U) é opcionalmente comunicada como uma alternativa meramente para a comunicação de identificadores de área (U) propriamente ditos. Por exemplo, os identificadores de área (U) são opcionalmente obtidos durante a decodificação a partir dos dados codificados com base na informação pertencente aos identificadores de área (U), por exemplo, informação dividida/combinada. Mais opcionalmente, os identificadores de área (U) podem ser predeterminados e nenhuma outra informação precisa ser distribuída. Beneficamente, a base de dados não edita ou recolhe de forma alguma os identificadores de área (U), mas, ao invés disso, os elementos (E) recuperados a partir da base de dados com base no valor de referência (R) são coletados e seus blocos de dados reconstruídos são localizados nos dados de resultado reconstruídos para uma localização apontada pelo identificador de área (U).
Algumas vezes, a informação sobre os identificadores de área (U) é predeterminada nos dados, por exemplo, os blocos são igualmente dimensionados, e são codificados em uma determinada ordem, nesse caso, nenhuma nova informação de fato precisa ser transmitida. Como não existe informação adicional sobre os dados nos identificadores de área (U) para alterar a forma predeterminada de geração de identificadores de área (U) para o bloco de dados codificado de entrada de acordo com sua ordem, é evidente que a forma predeterminada é utilizada.
Ocasionalmente, existe informação transmitida opcionalmente denotando um ou mais tamanhos de bloco desejados e ordem de processamento ou um ou mais tamanhos de bloco e ordem de processamento selecionados a partir de várias alternativas são transmitidos. Algumas vezes, o codificador pode transmitir para o decodificador também tal informação divi- dida/combinada que define os tamanhos, formatos e localizações dos blocos de dados e também sua ordem de processamento, de modo que um bloco de dados decodificado e recebido, por exemplo, um bloco de dados recuperado a partir da base de dados, possa sempre ser colocado de forma não ambígua e singular dentro da localização correta nos dados de resultado reconstruídos.
Esse tipo de informação dividida/combinada para definir identificadores de área (U) pode ser transmitido, por exemplo, pela utilização da solução de codificação apresentada nos pedidos de patente US No. 13/584.005 e US No. 13/584.047.
Os identificadores de área (U) são opcionalmente gerados de muitas formas, dependendo de um método de codificação empregado. Opcionalmente, nos codificadores/decodificadores de bloco como mencionado acima, incorporados aqui por referência, a informação de identificador de área (U) é derivada da informação dividida/combinada quando a divi- são/combinação dos blocos, e algumas vezes a informação de identificador de área (U) já está disponível ou é conhecida, caso no qual a informação referente aos identificadores de área (U) é simplesmente a informação sobre o identificador de área (U) que já está disponível e/ou é conhecida.
Algumas vezes, por conta do método utilizado na transmissão e armazenamento, a ordem dos dados codificados não pode ser garantida. Por essa razão, são opcionalmente empregados mais identificadores de área (U) nos dados do que o necessário para a codificação de dados e decodificação de dados real. Ademais, um identificador de área (U) é opcionalmente inserido, por exemplo, em cada pedaço de dados para expressar onde o primeiro bloco de dados correspondente a esse pedaço de dados está localizado. De forma similar, algumas vezes um número de ordem é opcionalmente adicionado a cada pedaço de dados para denotar a ordem dos pedaços de dados. Essa informação então evita uma necessidade de identificadores de área adicionais (U). Essa invenção é opcionalmente utilizada juntamente com uma solução que utiliza blocos de dados alterados e não alterados como descrito, por exemplo, na patente US No. 8.169.547. Se houver uma solução que distribua apenas os blocos de dados alterados, então os identificadores de área (U) não precisam ser utilizados para descrever a posição desses blocos alterados, especialmente se não houver qualquer outra informação que descreva as posições do bloco de dados alterado de forma singular.
Tal compressão de dados aumentada é alcançada, como ilustrado na Figura 2, pela comunicação de um novo elemento E 200 de uma base de dados dinâmica 120 a partir do codificador 10 para o decodificador 50, sem precisar enviar seu valor de referência correspondente R 210 juntamente com o novo elemento 200. Tal característica é realizada por todos os valores de referência R para os elementos E 200 para os blocos de dados digitais 220 sendo suscetíveis a serem recomputados utilizando-se hardware de computação 230, 230R a partir do bloco de dados reconstruído 220', tanto no codificador 50 quanto no decodificador 10. Será apreciado que como tal, o elemento E 200 é apenas uma parte dos dados codificados 30 envia-dos a partir do codificador 10 para o decodificador 50. Opcionalmente, uma parte do valor de referência R contém de forma benéfica informação que está, do contrário, presente em ambos o codificador 10 e decodificador 50, por exemplo, derivada de quantos elementos de base de dados E já estiverem disponíveis em uma ou mais bases de dados 100, ou é, do contrário, possível para (re)calcular com base no bloco de dados codificado (depois da decodificação). Em adição à quantidade/contagem, por exemplo, a ordem de probabilidade dos elementos E pode influenciar uma parte numérica do valor de referência R. Ademais, a quantidade/contagem mencionada acima ou ordem de probabilidade nem sempre precisa se referir a toda uma base de dados, mas, ao invés disso, por exemplo, pode se referir a uma combinação selecionada dos valores de referência transmitidos R, para os quais a combinação, portanto, pode receber mais de uma variação diferente com a ajuda desse valor.
O codificador 10 e o decodificador 50 empregam de forma benéfica um método de computação de valores de referência R que até agora não era conhecido. Beneficamente, o codificador 10 é operável para reconstruir, isto é, quantizar e desquantizar, os valores de bloco de dados antes da computação dos valores de referência correspondentes R. Por essa razão, cada bloco de dados 220 pode ser codificado no codificador 10 utilizando qualquer algoritmo de compressão com perda ou sem perda conhecido, por exemplo, como fornecido na Tabela 2, ou por uma combinação de tais algoritmos de compressão com ou sem perda, o codec 5 da Figura 1 pode, dessa forma, ser versátil com relação aos algoritmos de compressão que emprega que fornecem benefícios de compressão de dados importantes. Esses métodos incluem, mas não estão limitados a DC, deslizamento, linha, multi- nível, DCT, interpolação e extrapolação. Os elementos de base de dados 200 podem ser criados também para qualquer tamanho de bloco e a partir de qualquer posição de uma imagem decodificada, por exemplo. Beneficamente, os valores de referência R contêm uma pluralidade de partes de componente que pode ser computada independentemente, por exemplo, um componente descreve uma média de valores de bloco, outro componente descreve uma variação dos valores de bloco, outro componente descreve uma amplitude dos valores de bloco, um outro componente descreve uma soma de verificação para os valores de bloco ou os elementos E incluídos em uma base de dados determinada 100. Ademais, todo o valor de referên-cia R, ou uma parte do valor de referência R, também é opcionalmente distribuído para o decodificador 50 juntamente com os dados codificados 30; tal informação é beneficamente empregada para determinar a correção da distribuição, por exemplo, qualquer degradação de qualidade que surja da transmissão de dados codificados 30 a partir do codificador 10 para o decodificador 50. Opcionalmente, o decodificado 50 opera para retornar todo o valor de referência R, ou uma parte do mesmo, de volta para o codificador 10, por exemplo, para fins de validação e/ou fins de controle de qualidade.
Os valores de referência de base de dados mencionados acima R exigem mais bits de dados quando a base de dados determinada 100 é maior. Um número de bits de dados não comprimidos necessário para a definição de um valor de referência de base de dados singular R pode ser computado considerando-se o valor log2 do número de elementos E 200 na base de dados 100. Dessa forma, valores de referência de base de dados maior R exigirão mais bits, e a razão de compressão obtenível nos dados codificados 30 é reduzida para cada bloco de dados de base de dados existente. Normalmente, no valor de referência de base de dados R existem beneficamente um ou mais bits que são reservados para elementos de dados não utilizados E. No entanto, a fim de evitar precisar de elementos de base de dados não utilizados excessivamente E em uma base de dados estática grande 110, ou uma base de dados dinâmica 120, os elementos E de uma base de dados dinâmica menor nova 120 podem ser criados a partir dos elementos E de uma base de dados estática utilizada 110, ou uma base de dados dinâmica utilizada 120. A nova base de dados dinâmica menor 120 pode então ser utilizada no decodificador 50 para fins de decodificação, onde a nova base de dados dinâmica exige menos bits em seus valores de referência R para elementos de identificação singular E presentes na nova base de dados dinâmica pequena em comparação com a base de dados original maior.
Deve-se notar que o valor de referência R mencionado aqui é precisamente o valor de referência transmitido (índice que específica de forma singular o elemento E na base de dados), que, dessa forma, recebe uma contagem de bit menor na nova base de dados menor do que o valor de referência transmitido original utiliza na antiga base de dados maior. Isso, obviamente, não tem qualquer efeito no valor de referência preciso real R que é utilizado na busca, visto que depende do valor de dados real do elemento E, que ao são alterados de forma alguma.
O valor de referência R para a nova base de dados dinâmica pode ser, por exemplo, o número total de elementos E presentes na nova base de dados. Opcionalmente, esse valor de referência R, correspondendo a um elemento de base de dados E na nova base de dados dinâmica, inclui dados reais, ou pode ser conectado à outra base de dados maior. Quando a nova base de dados dinâmica é utilizada para codificação dos valores de referência R, é descoberto que os valores de referência R podem ser comprimidos de forma eficiente pelo emprego de um algoritmo de codificação conhecido, por exemplo, codificação delta conhecida. Dessa forma, com a utilização de nova base de dados dinâmica, é possível se economizar bits do valor de referência R não comprimidos consideráveis, substancialmente sem qualquer redução no desempenho ou qualidade dos dados decodificados 60 que são enviados a partir do decodificador 50.
Como um exemplo: (a) se uma base de dados estática determinada 110 contiver 16 milhões de elementos E, expressáveis utilizando-se 24 bits de dados para os valores de dados correspondentes R; (b) uma base de dados dinâmica 120 contiver apenas 1024 elementos E, expressáveis utilizando 10 bits de dados para os valores de dados correspondentes R; e (c) um bloco de dados existe na base de dados dinâmica 120 com um determinado índice de bloco de dados, então o valor de referência R exigirá apenas 10 bits para definir o bloco de dados de forma singular através da base de dados dinâmica 120, em comparação com 24 bits para definir o bloco de dados de forma singular se fosse incluído na base de dados estática 110. Se um bloco de dados determinado for transferido a partir da base de dados estática 110 para a base de dados dinâmica 120 nesse exemplo, menos bits são necessários para a identificação singular do bloco de dados; beneficamente, o codificador 10 informa ao decodificador 50 com relação ao movimento, ou cópia, de um ou mais blocos de dados a partir da base de dados estática 110 para a base de dados dinâmica 120. O codec 5 da Figura 1 é beneficamente também opcionalmente capaz de operar de uma forma de modo que um ou mais blocos de dados sejam movidos, ou copiados, a partir da base de dados estática 110 para a base de dados dinâmica 120 dependendo de uma quantidade de utilização da base de dados que ocorre para um ou mais blocos de dados. Em outras palavras, quando os valores de referência codificados R se referem a um bloco de dados determinado frequentemente, o bloco de dados no decodificador 50 é beneficamente obtido a partir de uma base de dados dinâmica determinada 120 transferida para o decodificador 50, ou tornada acessível ao decodificador 50, ao invés de a partir da base de dados estática 110 transferida para o decodificador 50, ou tornada acessível ao decodificador 50. Como mencionado acima, as bases de dados 110, 120 são opcionalmente hospedadas por um ou mais servidores de dados, por exemplo, pertencentes a uma ou mais terceiras partes.
O codec 5 da Figura 1 permite a economia de bits para os valores de referência de base de dados R pela criação de uma base de dados estática ou dinâmica de tamanho reduzido a partir dos elementos de base de dados mais utilizados E das bases de dados estática e dinâmica maiores 100. No codec 5, as bases de dados dinâmicas 120 e/ou bases de dados estáticas 110 de tamanho maior mantêm um contador de utilização para todos os blocos de dados existentes e novas bases de dados são criadas pela seleção de elementos E como uma base de tal informação de contador de utilização. Tal base de dados menor é beneficamente criada durante a codificação no codificador 10, e então comunicada ou de outra forma tornada disponível para o decodificador 50 para decodificação dos dados codificados 30; tal base de dados menor de outra forma tornada disponível pode incluir, por exemplo, os dados codificados 30 incluindo um link URL para a base de dados menor tornada disponível para download para o decodificador 50 de um servidor com base em Internet remota e/ou dos servidores de base de dados em uma LAN de cliente, por exemplo, hospedada em um ambiente de computação cloud e acessível a muitos dos ditos decodificadores 50, alternativamente hospedados em uma LAN similar à do decodificador 50.
Quando da decodificação dos dados fonte 20, o codificador 10 é operável a todo momento para selecionar quantas bases de dados diferentes 100, o tipo de bases de dados 100 e quais as bases de dados em particular 100 devem ser utilizadas para decodificar os dados codificados correspondentes 30 quando recebidos no decodificador 50, onde a informação descrevendo a seleção da base de dados 100 feita pelo codificador 10 é comunicada para o decodificador 50. Essa informação pode ser fornecida localmente, isto é, como na informação de base de dados dependente de aplicativo, ou globalmente, isto é, sempre a mesma informação de base de dados. Em determinadas situações, a base de dados selecionada já é conhecida do decodificador 50 e em tais casos, nenhuma informação específica precisa ser comunicada, armazenada e/ou transmitida, isto é, a informação também pode ser algo já conhecida do decodificador 50. De forma con-veniente, a informação descrevendo a seleção de base de dados 100 além da seleção do método de codificação utilizado é armazenada em um cabeçalho de vídeo ou recipiente dos dados codificados 30. Ademais, o decodifi- cador 50 é opcionalmente equipado com todas as uma ou mais bases de dados estáticas 110 antes de executar uma tarefa de decodificação dos dados codificados 30. Em um caso no qual o decodificador 50 descobre que não possui uma base de dados determinada definida nos dados codificados 30, o decodificador 50 envia uma solicitação para o codificador 10 para a base de dados determinada que está faltando ser enviada, ou, de outra forma, tornada disponível, por exemplo, a partir de um servidor de dados conectado em rede remota, para o decodificador 50. Opcionalmente, o servidor remoto é localizado de forma relativamente próxima ao decodificador 50, por exemplo, dentro de uma rede LAN mutuamente similar, fornecendo, assim, a distribuição rápida de bases de dados que estão faltando 100 para o decodi- ficador 50. Opcionalmente, as bases de dados que estão faltando são fornecidas em formato comprimido para o decodificador 50, de modo que o deco- dificador 50 opere para descomprimir as bases de dados que estão faltando para armazenamento na memória de dados do decodificador 50. Beneficamente, os blocos de dados que são utilizados com maior frequência pelo decodificador 50 são beneficamente armazenados em uma base de dados estática pequena 110.
A fim de liberar os recursos da RAM, no codificador 10 ou no de- codificador 50 ou ambos, os elementos de base de dados não utilizados são beneficamente removidos. A utilização dos elementos de base de dados E são beneficamente medidos pela contagem do número de elementos utilizados E na base de dados, ou pela manutenção das estatísticas para quando os elementos de base de dados E forem utilizados por último. No codec 5 da Figura 1, todas as bases de dados dinâmicas 120 são processadas para fins de limpeza para remoção de elementos não utilizados E. Opcionalmente, as bases de dados estáticas 110 também são sujeitas à limpeza; alternativamente, as uma ou mais bases de dados estáticas 110 são periodicamente substituídas por novas bases de dados estáticas para fins de limpeza. Opcionalmente, bases de dados antigas 110 também podem ser transferidas para uma memória de suporte de modo que possam ser acessadas em uma ocasião posterior se necessário para retornar para o codificador 10 e/ou para o decodificador 50, mas não ocupar a capacidade de memória nas bases de dados estáticas 110; beneficamente, a memória de suporte é implementada através de um disco rígido, uma memória flash, memória externa, uma ROM de dados de disco ótico, um depósito de dados com base em cloud e assim por diante. Em operação, o decodificador 50 é beneficamente notificado sobre qualquer mudança em uma das bases de dados 100, por exemplo, para permitir que o decodificador 50 solicite uma atualização de suas bases de dados 100 para solucionar qualquer aberração. Beneficamente, as bases de dados 100 também são identificadas por identificadores singulares, por exemplo, números de versão. Se uma ou mais das bases de dados 100 forem alteradas, por exemplo, no codificador 10, é desejável que apenas mudan-ças nas bases de dados 100 são comunicadas para o decodificador 50, ao invés de transferir todas as bases de dados 100 para o decodificador 50. Opcionalmente, as uma ou mais bases de dados 100 podem ser atualizadas com codificadores, por exemplo, tipos conhecidos de codificador, ademais, o codificador 10 é opcionalmente fornecido com uma base de dados estática pré-carregada associada 110, por exemplo, armazenada na ROM em estado sólido. Adicionalmente, quando uma ou mais bases de dados dinâmicas 120 são atualizadas no decodificador 50, diferentes modos de atualização podem ser empregados; por exemplo: (i) em um primeiro modo de atualização; um elemento antigo E é substituído por um novo elemento E; e (ii) em um segundo modo de atualização, um elemento antigo E é retido, e o novo elemento E é adicionado para aumentar o tamanho de uma ou mais bases de dados dinâmicas 120.
Opcionalmente, quando uma base de dados dinâmica pequena 120 está cheia, isto é, todos os elementos E da mesma alocados, a base de dados dinâmica pequena 120 é inspecionada, utilizando uma ou mais ferramentas de software automatizadas executando através do hardware de computação, para determinar quais elementos E da base de dados dinâmica pequena 120 são utilizados com maior frequência, e então os elementos E dentro da base de dados 120 são classificados, de modo que os elementos utilizados com maior frequência E sejam movidos para um começo da base de dados 120, por exemplo, para tornar a base de dados 120 mais rápida para acessar os elementos utilizados com maior frequência E e/ou tornar a base de dados 120 mais eficientemente compressível, por exemplo, para comunicação do codificador 10 para um ou mais decodificadores 50 através de uma rede de comunicação de dados, por exemplo, a Internet ou uma rede de comunicação de dados sem fio; beneficamente, outros elementos utilizados com menor frequência E da base de dados dinâmica pequena 120 são liberados. Ambos o codificador 10 e o decodificador 50 realizam beneficamente tal inspeção e classificação quando as uma ou mais bases de dados 120 estão cheias. Opcionalmente, tal inspeção e classificação são iniciadas por uma instrução que é enviada a partir do decodificador 10.
Quando o armazenamento de dados ou transmissão de dados é inicializada, o codificador 10 é operado para selecionar quais bases de dados 100 devem ser subsequentemente utilizadas pelo decodificador 50, por exemplo, se ou não as bases de dados 100 estão vazias no início da decodificação dos dados codificados 30, ou se ou não as bases de dados 100 já contêm alguns elementos de base de dados E no início da decodificação de dados codificados 30. Por exemplo, o decodificador 50 inicia opcionalmente a decodificação dos dados codificados 30 pelo emprego de uma base de dados estática genérica pequena 110, onde o decodificador 50 prossegue para preencher uma base de dados dinâmica 120 com os elementos E que estão faltando que o codificador 50 determina a partir dos blocos de dados incluídos nos dados codificados 30; a base de dados dinâmica 120 é então beneficamente limpa quando necessário pela utilização de regras como definido acima. Opcionalmente, a base de dados dinâmica gerada 120 é armazenada pelo decodificador 50 como uma nova base de dados estática 110 para uso futuro quando da decodificação de dados codificados futuros 30 recebidos no decodificador 50.
Quando da codificação de dados fonte 20, por exemplo, correspondendo a pelo menos um dentre conteúdo de vídeo, imagem, gráfico e áudio, o codificador 10 envia opcionalmente os valores de referência de base de dados R de um determinado bloco de dados, mesmo se uma base de dados incluindo o bloco de dados ainda não existe no decodificador 50, por exemplo, em um caso no qual o codificador 10 sabe que o decodificador 50 pode buscar uma base de dados estática adequada 110 incluindo um elemento E descrevendo o bloco de dados determinado a partir de algum ar- mazenador de base de dados estática disponível localmente para o decodifi- cador 50, por exemplo, localizado em uma LAN similar, ISP ou outro servidor para o decodificador 50. Tal abordagem permite que um codificador 10 dis-tribua os mesmos dados codificados 30 para muitos decodificadores 50 que possuem bases de dados ligeiramente diferentes disponíveis para os mesmos. Quando tal método é empregado, os decodificadores 50 não precisam hospedar bases de dados estáticas grandes ou recursos relacionados. Dessa forma, o codificador 10 negocia beneficamente com o decodificador 50 se tal método puder ser empregado. Para o método ser bem sucedido, o codificador 10 precisa estar ciente das bases de dados publica e/ou privada que o decodificador 50 é capaz de acessar para fornecimento do decodificador 50 com uma ou mais bases de dados 100 que exige para execução da decodificação dos dados codificados 30 enviados a partir do codificador 10. Esse método é bem adequado quando não existe necessidade de se enviar os blocos de dados codificados de forma alguma, quando tal suprimento de blocos de dados para o decodificador 50 a partir de outro codificador é pos- sível, onde o outro codificador codificou os dados codificados anteriormente. Opcionalmente, os blocos de dados são comunicados a partir de outros codificadores em uma comunicação não hierarquizada. Ademais, o método é adequado para sequenciamento ao vivo de dados de vídeo codificados através da Internet, permitindo, assim, que os dados de vídeo codificados sejam sequenciados por uma longa distância remotamente a partir do decodificador 50, onde os blocos de dados podem ser originados localmente para o decodificador 50; em tal caso, apenas os valores substancialmente de referência R são comunicados a partir de um local que está a uma longa distância do decodificador 50.
Como mencionado acima, as uma ou mais bases de dados dinâmicas 120 são beneficamente construídas a partir dos elementos de base de dados E que são gerados ou copiados a partir de blocos de dados reconstruídos, no codificador 10 ou no decodificador 50. Os blocos de dados podem ser 1-D, 2-D ou 3-D, ou qualquer combinação dos mesmos. Opcionalmente, os blocos de dados podem ser dimensionados e formatados, por exemplo, quando observados em um monitor, por exemplo, de formato poligonal, retangular, elíptico, circular, alongado, triangular para mencionar apenas alguns exemplos.
Opcionalmente, com relação ao bloco de dados 1-D, seu formato pode ser um conjunto de itens de dados unidimensionais quando apresentados nos dados decodificados 60. Ademais, opcionalmente, com relação ao bloco de dados 2-D, seu formato pode ser um formato quadrado, retangular, triangular, em paralelogramo ou circular quando apresentado nos dados decodificados 60. Adicionalmente, com relação ao bloco de dados 3-D, seu formato pode ser mais polimorfo tal como um cubo, uma pirâmide, um cilindro, uma esfera e assim por diante; tal como um bloco de dados 3-D, por exemplo, é benéfico quando os dados decodificados 60 são destinados às exibições de gráfico em 3D, por exemplo, para transportar imagens 3D para visualização por usuário. Um bloco de dados 2-D empregado comumente corresponde a pixels 8x8 ou elementos de exibição similares que são beneficamente empregados nas modalidades da presente descrição; existem múltiplos métodos de codificação conhecidos diferentes e muito eficientes para tamanhos de bloco de pixel 8x8 que podem ser utilizados pelo codificador 10 quando da geração de dados codificados 30.
A fim de se elucidar a presente descrição em maiores detalhes, a codificação de blocos de dados no codificador 10 será descrita agora.
Etapa 1: Em uma situação ideal, um valor de referência de base de dados determinada R é computado para um bloco de dados determinado correspondente presente nos dados fonte 20, por exemplo, para uma parte de uma imagem e/ou áudio presente nos dados fonte 20. Se houver um elemento existente adequado e em uma ou mais bases de dados 100, isso é uma combinação puder ser encontrada para o bloco de dados determinado com o elemento existente E em uma ou mais bases de dados 100, o valor de referência R é computado para selecionar o elemento existente E a partir de uma ou mais bases de dados 100. A combinação é determinada sujeita a um erro entre o bloco de dados determinado e o bloco de dados existente estando abaixo de um limite determinado, onde o limite definido corresponde a um índice de qualidade de codificação.
Etapa 2: se uma combinação for feita na Etapa 1, o valor de referencia R para o bloco de dados existente selecionado é armazenado ou enviado, por exemplo, nos dados codificados 30. O bloco de dados existente selecionado pode ser buscado a partir de uma pluralidade de bases de dados 100, onde o valor de referência R armazenado ou enviado também inclui um identificador da base de dados 100 onde o bloco de dados existente selecionado pode ser encontrado pelo decodificador 50. Inversamente, se uma combinação adequada na Etapa 1 não puder ser encontrada, então o bloco de dados determinado é codificado, por exemplo, utilizando-se codificação DC, codificação por deslizamento, codificação de multinível, codificação DCT ou qualquer outro algoritmo de codificação adequado, e um valor de referência de base de dados (R) é computado para o bloco de dados reconstruído; o bloco de dados codificado é beneficamente incluído nos dados codificados 30, por exemplo, para o recebimento no decodificador 50.
Alternativamente, ou adicionalmente, o codificador 10 opera para inspecionar se ou não existe um elemento adequado E disponível para o bloco de dados reconstruído, de forma similar ao bloco fonte em tal caso, um limite de qualidade de codificação diferente pode ser empregado. Se um elemento determinado E for selecionado para representar o bloco de dados reconstruído, seu valor de referência R pode ser armazenado ou enviado, por exemplo, nos dados codificados 30. Alternativamente, se um elemento de base de dados adequado E não puder ser selecionado para representar o bloco de dados reconstruído, isto é, o bloco de dados reconstituído, então o bloco de dados reconstruído, ou o bloco de dados determinado nos dados fonte 20, precisam ser enviados utilizando-se um algoritmo de codificação que é o mais adequado para o bloco de dados reconstruído, isto é, o bloco de dados reconstituído. Beneficamente, um método é escolhido que gera menos bits nos dados codificados 30, cria menos erros, ou otimiza os bits utilizados para o erro criado, por exemplo, pela utilização de algum coeficiente lambda correspondente à otimização RD. Esse bloco de dados codificado pode então ser adicionado a uma ou mais bases de dados dinâmicas 120 para uso futuro quando da codificação de dados no codificador 10 e/ou no decodificador 50.
Opcionalmente, o codificador 10 emprega técnicas de codificação como descrito na patente europeia EP 1787262 e no pedido de patente europeu EP12173534.4 que são incorporados aqui por referência; quando do emprego dessas técnicas como descrito, por exemplo, para codificação de conteúdo de vídeo, uma cor que representa um bloco de dados inalterado pode ser encontrada em uma base de dados 100, ou blocos inalterados podem ser detectados e codificados diferentemente. Apenas os blocos de dados alterados exigem codificação utilizando, por exemplo, técnicas de codificação conhecidas, por exemplo, como fornecido na Tabela 2; em adição à Tabela 2, diferentes tipos de métodos de codificação são opcionalmente empregados, visto que a Tabela 2 descreve apenas toda as soluções de codificação, mas não métodos individuais tal como interpolação e extrapolação, multinível, DCT e assim por diante. Uma funcionalidade similar pode ser fornecida para ambos o codificador 10 e o decodificador 50 para otimização do desempenho nesse exemplo com base na patente europeia EP 1787262 e no pedido de patente europeu EP12173534.4 que, como mencionado acima, são incorporados aqui por referencia. O conteúdo de outros pedidos de patente relacionados também podem ser incorporados por referência, isto é, pedido de patente europeu EP13172237.3, depositado em 17 de junho de 2013.
Para a elucidação adicional de modalidades da presente descrição, as bases de dados 100 e os valores de referência mencionados acima R serão descritos agora em maiores detalhes; por exemplo, referência é feita ao pedido de patente US publicado No. 2010/322.301 que é incorporado aqui por referencia. Como mencionado acima, existe dois tipos de base de dados: bases de dados estáticas 110 e bases de dados dinâmicas 120. As bases de dados estáticas 110 podem ser armazenadas em qualquer tipo de memória; para um desempenho mais rápido, as bases de dados estáticas 110 são opcionalmente armazenadas na ROM, por exemplo, ROM pode ser escrita ou programada em campo em um circuito integrado de silício. Alternativamente, ou adicionalmente, as bases de dados estáticas 110 são hardcoded em produtos de software compilados gravados em mídia de armaze-namento de dados legível por maquina de não transitória (não transiente). Por exemplo, em modalidades da presente descrição, uma base de dados estática 110 pode ser criada a partir de uma base de dados dinâmica 120 como mencionado acima, e então armazenada como uma base de dados estática correspondente 110. Beneficamente, as bases de dados estáticas 110 são, cada uma, identificadas por um código de referência singular pertencente à mesma. As bases de dados dinâmicas 120 são opcionalmente escritas na RAM, ou qualquer memória de dados de leitura e escrita equivalente, por exemplo, mídia de armazenamento de dados magnéticos ou óticos tal como armazenamento de dados de disco magnético de alta velocidade.
Opcionalmente, as modalidades da presente descrição empregam "pulo". O pulo permite que os elementos E que estão faltando em uma base de dados 100 sejam originados de outro local. Ademais, o pulo pode ser empregado para ambas as bases de dados estática e dinâmica 110, 120, respectivamente. Adicionalmente, o pulo permite que as bases de dados dinâmicas 120 sejam rapidamente atualizadas com relação aos elementos que estão faltando. Beneficamente, para tal pulo funcionar de forma eficiente, é desejável que todos os dados sejam decodificados em uma ordem similar, começando com uma criação de uma base de dados até um momento de utilização atual.
Os valores de referência mencionados acima R identificam de forma singular elementos E correspondentes em uma base de dados 100, onde os elementos E representam tipos diferentes de blocos de dados. No entanto, é desejável que os valores de referência R sejam gerados utilizando-se um método que é adaptado para um tipo de conteúdo de dados presente nos dados fonte 20 que devem ser codificados pelo codificador 10. Em outras palavras, um valor de referência R é computado no codificador para cada bloco de dados correspondente presente em partes dos dados fonte 20 ou bloco de dados codificado correspondente. No codificador 10, o bloco de dados codificado representado por esse valor de referência R é reconstruído, isto é, codificado e então decodificado novamente no codificador 10, para garantir que o decodificador 50 possa gerar o mesmo valor de referência de base de dados R para o bloco de dados codificado que é somado a uma ou mais bases de dados 100; uma razão para tal forma de operação é que, quando um método de codificação foi selecionado para um bloco determinado em questão, então, com base nos parâmetros que produziu, um bloco é reconstruído ou decodificado. O bloco reconstruído é então do que o elemento de base E e seu valor de referência R são construídos. O decodificador 50 gera exatamente as mesmas uma ou mais bases de dados 100 como empregado no codificador 10 quando da codificação dos dados fonte 20. Vários métodos podem ser empregados, quando da implementação das modalidades da presente descrição, para computar os valores de referência R, mas são beneficamente computados a partir de valores de amplitude (ou mínimo e máximo), variação (ou desvio-padrão), média (ou soma) e soma de verificação (ou hash ou índice) pertencentes aos blocos de dados presente nos dados fonte 20 a serem codificados no codificador 10. "Amplitude" se refere, por exemplo, a uma diferença entre os valores de pixel ou dados originais maiores e menores dentro de um determinado bloco de dados. O valor de soma para um bloco de dados (2D) é opcionalmente computado pela utilização da equação 1 (Eq. 1):
Figure img0006
SUM = valor de soma; m x n = número de pixels ou valores de dados presentes no bloco de dados (2D), por exemplo, n = 8, m = 8 para um bloco de dados de pixel 8x8; e i,j = índices de referência. O valor médio é computado pela multiplicação do valor de soma com 1/(m*n), isto é, a divisão do valor de soma pelo número de valores de dados somados para gerar o valor de soma. Ademais, a variação do bloco de dados (2D) pode ser computada utilizando-se a Equação 2 (Eq. 2):
Figure img0007
V = variação. O desvio-padrão pode ser computado a partir de uma raiz quadrada da variação V.
Beneficamente, a soma de verificação para o bloco de dados é computada utilizando-se uma função XOR lógica contra cada valor, isto é, pixel em uma região de interesse (ROI). Por exemplo, para bases de dados estáticas e dinâmicas 110, 120, respectivamente, a amplitude, a variação V e a média Mea soma de verificação são fornecidas na Tabela 4:
Figure img0008
Para elementos conhecidos E de um valor de referência de base de dados R, a computação de pseudocódigo pode, por exemplo, ser executada como segue: DBREF = (AMPLITUDE SHL (DBREF_BITS-AMPLITUDE_BITS)) + (VARIANCE SHL (DEBREF_BITS-(AMPLITUDE_BITS + VARIANCE_BITS))) + (MEAN SHL (DBREF_BITS-(AMPLITUDE_BITS + VARIANCE_BITS + MEAN_BITS))) + CHECKSUM
Deve-se notar que o valor de referência R a ser calculado é o valor de referência transmitido combinado R para uma base de dados estática 110, e que na busca real pelo elemento E, valores mais precisos e/ou mais imprecisos podem ser utilizados. A soma de verificação não tem qualquer efeito para alimentar a busca, a menos que uma combinação perfeita seja buscada.
Um número alocado máximo de bytes de uma base de dados estática ou dinâmica 110, 120, respectivamente, é definido pelo valor de referência de base de dados R. A fim de se computar uma contagem de bit total para um valor de referência de base de dados determinada R, todos os elementos E devem ser adicionados onde o valor de referência R é computado, onde os elementos E incluem a amplitude, a variação V, a média Mea soma de verificação, isto é, a combinação MVA. Por exemplo, a contagem de bit para um valor de referência de base de dados R pode ser computada como se segue: DBREF_BITS = AMPLITUDE_BITS + VARIANCE_BITS + MEAN_BITS + CHECKSUM_BITS
Uma base de dados não pode conter mais elementos do que o comprimento da parte dependente de elemento da referência transmitida R, isto é, o valor médio não tem qualquer efeito no comprimento se a base de dados não utilizar um valor médio, por exemplo, a base de dados de média zero, mas, do contrário, tem.
Por exemplo, se os bits forem enviados como no exemplo da Tabela 4, então para uma base de dados normal, o número de elementos E será de acordo com 20 bits, e para uma base de dados que não utiliza um valor médio, 12 bits, e então de acordo, as quantidades serão aproximadamente de um milhão de elementos X 4000 elementos. Ademais, cada elemento E, obviamente, exige bytes de acordo com o formato de apresentação dos dados. Por exemplo, para um bloco de 8x8 com valores de 8 bits, um elemento normal, isso é que possui um valor médio, 64 bytes por elemento são necessários, ao passo que um elemento que não possui uma parte de valor médio exige 64 * 9/8 = 72 bytes por elemento E, visto que o bit de sinal precisa ser armazenados para cada valor de dados. Isso resulta no tamanho máximo para uma base de dados de 8x8 como apresentada no exemplo para uma base de dados que utiliza o valor médio, 64 MB, e para a base de dados que não utiliza o valor médio, apenas 288 kB. Esses números representam, dessa forma, a alocação máxima para os valores de dados dos elementos de base de dados apenas, e o tamanho depende, dessa forma, das contagens de bit para várias partes do valor de referência (R), no tamanho de bloco e na dinâmica dos valores de dados. Adicionalmente, para fins de realização de uma busca rápida, valores de referencia mais precisos e/ou mais imprecisos (R) precisarão ser armazenados no codificador 10. Para o decodificador 50, é suficiente se ter tais dados de base de dados que foram organizados de tal forma que os endereços dos dados de referencia corretos sejam encontrados com facilidade.
Como um exemplo adicional, um tamanho total de uma base de dados determinada 100 é computado para ser igual a 1, 048, 576 elementos, isto é, um valor de 220, isso é aproximadamente 1 mega-elemento. Se cada elemento E incluir 64 pixels, isto é, for implementado como um bloco de pixels de 8x8 dados, que possui uma faixa dinâmica de 1 byte por pixel, então o tamanho total da base de dados determinada não comprimida 100 é de 64 Mbytes.
Como ilustrado na Figura 3, um valor de referência determinado R é indicado por 300 e compreende várias partes mutuamente diferentes 310A, 310B, 310C, por exemplo, a variação V, média M, amplitude A, respectivamente. Essas partes são beneficamente computadas separadamente, e, dessa forma, uma busca no codificador 10 e/ou no decodificador 50 pode ser implementada o mais rapidamente possível, permitindo, dessa forma, as operações de codificação e/ou decodificação rápidas. As partes diferentes 310 funcionam beneficamente como sub-referências de base de dados separadas, isto é, índices, por exemplo, com uma adição de uma verificação de redundância cíclica (CRC) como denotado por 310D. Ademais, se uma base de dados grande 100 for construída e baseada apenas na ordem de criação, ou, alternativamente, na CRV, é vantajoso que o codec gere uma tabela de consulta também. Essa tabela de consulta é beneficamente empregada para navegar por uma combinação adequada de média M, variação V e amplitude A de forma rápida.
Quando da computação dos valores de referência R 300, diferentes abordagens de amostragem podem ser empregadas, e os valores de referência R 300 incluem beneficamente coeficientes de ponderação adicionais, onde os coeficientes de ponderação adicionais permitem buscas entre menos alternativas, ou os coeficientes de ponderação adicionais permitem que o codec encontre um elemento E, por exemplo, para bordas de imagens que são menos importantes com relação à qualidade de decodificação em uma comparação com uma parte central de uma imagem; isso pode ser alcançado, por exemplo, pelo emprego de um limite de qualidade de variação dinâmica no codificador 10 quando da codificação de dados fonte 20. As buscas no codec 5 podem, dessa forma, ser executadas mais rapidamente visto que o valor de referência R inclui parâmetros mais precisos de dados aos quais se referem; ademais, a CRC ou índice similar possibilitam se ter vários elementos de base de dados E para uma combinação básica.
Opcionalmente, uma busca em uma ou mais bases de dados 100 com base em um valor de referência determinado R é executada começando a partir de uma base de dados grande 100 que contém uma referência aos elementos E, e onde bases de dados menores 100, possuem os mesmos tipos ou tipos similares de elementos E. Alternativamente, a base de dados pequena 100 também mantém tal informação referente às combinações MVA com relação aos dados que a base de dados pequena 100 retém; essa informação permite que a base de dados menor 100 seja ignorada rapidamente pelo codificador 10 e/ou decodificador 50 se a combinação no bloco de dados determinado sendo buscado for suficientemente diferente.
Com relação ao valor de referência mencionado acima R, 300, é opcionalmente vantajoso se comprimir a variação V e a amplitude A juntas, por exemplo, para reduzir um número total de bits necessário para definir o valor de referência R, 300, e, dessa forma, uma redução em um tamanho de dados codificados 30 necessitando ser comunicados a partir do codificador 10 par ao decodificador 50 na Figura 1; tal benefício deriva da variação V e da amplitude A sendo fortemente correlacionados. Inversamente, a média M e as partes CRC/Índice do valor de referência R, 300, são beneficamente comprimidas separadamente, visto que a média M é frequentemente compatível com uma característica relativamente delta, mas CRC pode ser muito aleatória. Para uma combinação de partes de variação V e amplitude A que é quantizada utilizando menos bits, é vantajoso se empregar a Codificação de Comprimento de Funcionamento (RLE) para a geração de dados codificados 30; alternativamente, codificação delta pode ser empregada para tal finalidade. Se uma primeira combinação de variação V e amplitude A for quantizada com relativamente menos bits, e uma segunda combinação de variação V e amplitude A determinada codificada com mais bits nos dados codificados 30, é vantajoso que as combinações sejam codificadas separadamente, por exemplo. RLE pode ser empregada para a primeira combinação determinada, e a codificação Huffman pode ser empregada para a se gunda combinação determinada, mas não limitado a isso. Outros tipos de codificação são beneficamente empregados, por exemplo:
Range, SRLE: "Split run-length encoding", um método descrito em GB1303660.3 depositado por Gurulogic Microsystems Oy em 1 de março de 2013;
EM: "Entropy Modifier", um método descrito em GB1303658.7 depositado em Gurulogic Microsystems Oy em 1 de março de 2013; e
Odelta: um método descrito em GB1303661.1 depositado por Gurulogic Microsystems Oy em 1 de março de 2013. mas não limitado a isso.
Os valores de referência R 300 a serem comunicados através dos dados codificados 30 a partir do codificador 10 para o decodificador 50 são beneficamente comprimidos utilizando-se várias técnicas de compressão, por exemplo: (i) métodos com base me VLC tal como codificação Huffman com métodos de codificação de base de dados empregando algoritmos Lempel-Ziv, por exemplo, ZLIB, LZO, LZSS, LZ77; e (ii) codificação Huffman ou similar para as combinações mencionadas acima de valores, por exemplo, variação V e amplitude A.
Opcionalmente, os valores de referência R, 300 podem ser comprimidos como valores inteiros, ou partes dos valores de referência R, 300, por exemplo, como ilustrado na Figura 3, podem ser comprimidos separadamente. Ademais, é opcionalmente possível se empregar uma combinação de técnicas de compressão de dados para alcançar uma compressão de dados ainda maior nos dados codificados 30; por exemplo, as partes de variação V dos valores de referência R, 300 podem ser primeiramente comprimidas utilizando-se codificação delta para gerar os primeiros dados comprimidos, e então as técnicas de codificação RLE podem ser aplicadas aos primeiros dados comprimidos para gerar os segundos dados comprimidos, e então a codificação Huffman pode ser aplicada aos segundos dados comprimidos para gerar os terceiros dados comprimidos, onde os terceiros dados comprimidos são, por exemplo, comunicados nos dados codificados 30 a partir do codificador 10 para o decodificador 50.
Uma ou mais das bases de dados 100 podem conter elementos E que consistem em valores de dados dos blocos de dados em uma ordem previamente conhecida, por exemplo, de forma progressiva. Se a ordem diferir de uma ordem padrão considerada para codec 5 da Figura 1, tal ordem diferente é beneficamente definida nos dados codificados 30 por um parâmetro de configuração de ordem. Por exemplo, tal tipo de elemento de base de dados de valor de dados E pode ser criado a partir de qualquer bloco de dados de tamanho correto, por exemplo, a partir de uma imagem reconstruída. Opcionalmente, o parâmetro pode ser mudado entre estados em um curso dos dados codificados 30 sendo comunicados a partir do codificador 10 para o decodificador 50.
Opcionalmente, as uma ou mais bases de dados dinâmicas 120 que são atualizadas de acordo com uma ordem previamente conhecida empregam um número flexível de elementos E por quadro, por exemplo, para permitir que o codec 5 da Figura 1 alcance uma razão de compressão de dados maior para imagens com conteúdo de informação relativamente menor. Por exemplo, se os tamanhos de uma base de dados dinâmica determinada 120 para quadros diferentes for de 126, 193, 252, 303 elementos, então o número de bits necessário para se endereçar de forma singular cada elemento para cada quadro é de 7, 8, 8 e 9 bits respectivamente. Em uma base de dados grande 100, os elementos E podem ser dispostos em ("configurar número", "obter número") um tipo de estrutura, com relação ao elemento E endereçando; por exemplo, em um byte de 8 bits, um bit do byte é reservado para notificação de um recipiente se todo o valor tiver sido transmitido, e os sete bits restantes são utilizados para definir o valor sendo enviado, opcionalmente com mais bits depois disso. Por tal abordagem, é possível se transmitir informação correspondente a sete bits com um byte e informação de quatorze bits em dois bytes. Evitar uma necessidade de inclusão de bits da informação nos dados codificados 30 é capaz de fornecer compressão de dados melhorados no codec 5 da Figura 1.
Opcionalmente, os elementos E incluídos dentro de uma ou mais bases de dados 100 podem ser combinados, por exemplo, para ocupar menos memória de dados, podem conter uma soma ou elementos de coeficiente, por exemplo, para uma base de dados de escalonamento 100 ou uma base de dados 100 com média zero, que pode ser computacionalmente adaptada utilizando um ou mais parâmetros para fornecer elementos E de forma adequada quando da codificação de dados fonte 20 e/ou quando da decodificação de dados codificados 30.
Opcionalmente, é possível se utilizar qualquer um ou mais parâmetros, ou tais um ou mais parâmetros que foram eliminados do bloco propriamente dito antes de serem inseridos na base de dados 100. De forma correspondente, quando um elemento de base de dados E é utilizado, os dados produzidos por esses parâmetros precisam ser adicionados ao elemento E quando o bloco resultante é construído. Em uma primeira implementação, um parâmetro de cor média é empregado. Os parâmetros de cor deslizantes e outros parâmetros também podem ser utilizados. A princípio, com esse elemento de base de dados E que está na memória, uma previsão ou qualquer outro método de codificação pode ser utilizado. Essa média é muito útil, visto que é possível se utilizar uma média como parte da referência R de outras formas também, e, portanto, nenhum dado novo precisa ser transmitido para utilização da mesma, e, portanto, é possível se reduzir de forma considerável um tamanho da base de dados real 100, que é armazenada na memória. Obviamente, pela adição de bits a outras referências R, é possível aumentar o tamanho da base de dados 100 armazenada na memória, e, dessa forma, obter muitos novos elementos E além de poder beneficamente ser utilizado na codificação. Quando a media é eliminada do bloco, então o elemento se torna aproximadamente média zero.
Um exemplo é fornecido abaixo, onde uma omissão do valor médio a partir dos valores de bloco é empregada, fornecendo, assim, uma utilização mais eficiente da base de dados com relação aos valores de média diferentes. O método mencionado acima de codificação é beneficamente aplicado para blocos deslizantes, para previsões ou para blocos codificados de alguma outra forma. Um resultado obtido dessa forma pode então ser eliminado da base de dados antes da construção dos elementos de base de dados E, e, de forma correspondente, anexado a um elemento de base de dados E que foi coletado a partir da base de dados, com relação à decodificação, mediante a reconstrução do bloco de dados.
O valor médio é, portanto, um método de codificação mais simples, e beneficamente, também a esse respeito, visto que remove de forma clara a necessidade de um elemento ou parte no valor de referência R quando o valor de referência R é construído a partir de múltiplas partes reduzindo, assim, um tamanho da base de dados. A amplitude também pode ser utilizada para relativizar os valores de dados, e fornece, dessa forma, os benefícios para a cobertura da base de dados sem reduzir o tamanho da base de dados.
As outras previsões ou métodos de codificação na verdade produzem apenas blocos de erro de previsão, seu uso não é prático. Obviamente, os valores médios podem ser omitidos a partir dos mesmos também, fornecendo, assim, uma base de dados de tipo de erro de previsão, com as propriedades correspondentes como a base de dados para os blocos originais. Obviamente, será apreciado que os elementos de base de dados E podem ser utilizados como dados de erro de previsão para outro bloco de base de dados, e, dessa forma, o recuso dos elementos de base de dados E também é suportado de acordo com a presente descrição.
No entanto, não é vantajoso se executar um grande número de recursos, a menos que as bases de dados sejam muito pequenas ou a menos que uma reconstrução realmente precisa seja desejada, visto que, do contrário, o tamanho de dados codificados do bloco de dados cresça rapidamente e muito.
Ademais, as uma ou mais bases de dados 100 podem incluir elementos E que foram computados, por exemplo, utilizando técnicas de extrapolação; em outras palavras, o codec 5 tem conhecimento de um método de computação que foi utilizado para gerar um determinado bloco de dados e um tamanho total de bloco de dados determinado, beneficamente em conjunto com um ou mais valores para fornecer uma base na qual os valores de dados do bloco de dados podem ser computados. Tal computação é beneficamente implementada utilizando-se um método DC e um método de deslizamento. O método DC utiliza um valor, por exemplo, um valor de desvio, que é então aplicado a todos os valores de dados dentro de um bloco de dados determinado. Inversamente, o método de deslizamento, por exemplo, implementado como um método de deslizamento unidimensional utiliza dois valores, por exemplo, um primeiro valor de dados e um último valor de dados com o bloco determinado, e então computa os valores restantes para o bloco de dados por meio de interpolação linear com base nos primeiro e último valores de dados de forma linear, alternativamente, de forma polinomial. Ademais, um método de deslizamento bidimensional é opcionalmente empregado e utiliza quatro valores correspondentes para os pontos de canto em um bloco de dados, onde um restante de pontos no bloco de dados é computado utilizando-se a interpolação bilinear. Adicionalmente, outros tipos de algoritmos de computação são opcionalmente empregados para computação de valores para os blocos de dados a partir de relativamente poucos valores iniciais dentro do codec 5 da Figura 1.
Uma ou mais bases de dados 100 incluem opcionalmente elementos E que são referências para outras bases de dados, por exemplo, de forma hierárquica. Em tal caso, o elemento E inclui informação definindo outra base de dados 100 e também beneficamente um valor de referência R para um elemento E dentro de outra base de dados 100. Com base em tal informação, os valores de dados para um determinado bloco de dados desejado podem ser computados. Tal forma de acesso a um ou mais elementos E a partir de uma base de dados secundária invocada a partir de um elemento E de uma primeira base de dados utiliza de forma benéfica um ou mais coeficientes de escalonamento e/ou uma ou mais mudanças de desvio de valor de pixel, por exemplo, se o elemento de base de dados E sendo referido na base de dados secundária for de um tamanho diferente, por exemplo, o tamanho de bloco de dados, com relação a um bloco de dados desejado a ser retornado pela invocação do elemento E da primeira base de dados. Beneficamente, tal abordagem emprega um modelo Affine como descrito em uma publicação da Wikipédia como acessada em 19 de outubro de 2012 através do URL: HTTP://en.wikipedia.org/wiki/Affine_transformation. Na Tabela 5 é fornecida uma visão geral dos tipos de elemento de base de dados empregados para a implementação do codec 5 da Figura 1.
Figure img0009
As modalidades da presente descrição possuem aplicação po-tencialmente ampla em produtos eletrônicos que são operáveis para enviar e/ou receber dados representativos de vários tipos de conteúdo, por exem- 10 plo, conteúdo de vídeo sequenciado, TV por Internet, conteúdo transportado através de portadores de dados físicos tal como discos oticamente legíveis e assim por diante. Ademais, quando as bases de dados 100 são disponibilizadas apenas para partes específicas, tal como, por exemplo, substancial- mente basicamente, os valores de referência R são comunicados nos dados codificados 30, a presente descrição pode fornecer serviços de criptografia de dados; a ideia/objetivo aqui é que, com a ajuda das referências da base de dados, seja possível se enviar pelo menos uma maior parte dos dados codificados, e apenas a parte pequena exija a codificação dos valores de bloco com alguns outros métodos de codificação. Dessa forma, as modalidades são aplicáveis em muitas indústrias técnicas diversas. Ademais, as modalidades podem reduzir a carga de rede de comunicação ou exigências, reduzindo as exigências de capacidade de armazenamento de dados, além de permitindo potencialmente uma codificação e decodificação de dados de alta qualidade, esses são efeitos técnicos benéficos.
O codificador 10 e o decodificador 50 são beneficamente implementados como um ou mais processadores de dados de hardware. Opcionalmente, os processadores de dados de hardware são implementados de forma hard-wired, por exemplo, pelo emprego de ASIC ou circuitos digitais similares. Opcionalmente, os processadores de dados de hardware são implementados utilizando-se o hardware de computação, onde o hardware de computação opera para executar um ou mais produtos de software gravados em meio de armazenamento de dados legível por máquina não transitório (não transiente).
A uma ou mais bases de dados mencionadas acima 100 são idealmente implementadas no codificador 10, no decodificador 50, em uma LAN, fornecidas por um ISP, implementadas em uma memória separada tal como uma memória de disco rígido, em cartões de memória, em discos BlueRay, em RAM, em ROM, em memória de dados Flash, em SSD, em DVD, em CD e qualquer outro tipo de portador de dados fornecendo acesso a seus dados. "BlueRay" é uma marca registrada.
As uma ou mais bases de dados 100, quando fornecidas por um ou mais servidores de dados, por exemplo, implementados como um ou mais cartões de memória, onde um ou mais servidores de dados são espacialmente localizados, podem ser conectadas ao codificador 10 e/ou ao de- codificador 50 de uma ou mais formas como se segue: através de conexões fixas, através de pontos de contato, através de cabos, através de conexões sem fio, através de redes sem fio (por exemplo, tal como GSM, 3G, 4G, 5G, LTE), através de conexão de satélite, mas não limitados a isso. "BlueTooth" é uma marca registrada.
Opcionalmente, acima, os elementos E podem ser inseridos na base de dados 100, fora dos blocos de dados decodificados, um de cada vez, combinados ou utilizados apenas parcialmente. Isto é, a princípio, qualquer conjunto decodificado de valores de dados pode construir um novo elemento E na base de dados de acordo com princípios determinados ou acordados, e qualquer método de codificação ou solução de codificação pode ser utilizada para produzir os dados decodificados, a partir de onde elementos são inseridos na base de dados.
Opcionalmente, o codificador 10 e o decodificador 50 são incluídos como subcomponentes de um codificador de multinível e um decodificador de multinível correspondente, de acordo com o método descrito na GB1218942.9 e pedido de patente US equivalente 13/657.382 além dos pedidos correspondentes EP13003859.9 e US 14/058.793. No codificador de multinível, os dados fonte 20 são analisados e divididos em uma pluralidade de sequências de dados, por exemplo, dependendo de uma natureza de conteúdo presente nos dados fonte 20. Uma dentre a pluralidade de sequências de dados é fornecida para o codificador 10 que gera os dados codificados correspondentes; os dados codificados correspondentes são combinados com outros dados de saída codificados de outros codificadores processando as outras sequências de dados da pluralidade de sequências de dados para gerar os dados codificados finais fornecidos a partir do codificador de multinível. No decodificador de multinível, os dados codificados finais são recebidos e depois disso divididos em uma pluralidade de sequências de dados, onde uma das sequências de dados é fornecida para o decodificador 50 para gerar os dados decodificados correspondentes; os dados decodificados correspondentes são combinados com os dados decodificados forne-cidos a partir de outros decodificadores do decodificador de multinível para geração dos dados de saída decodificados finais. Apesar de tais codificado- res e decodificadores de multinível serem mais complexos do que meramente o codificador 10 e o decodificador 50, tais codificadores e decodificadores de multinível são capazes de fornecer uma codificação, decodificação e um desempenho de compressão de dados excepcional, quando do manuseio de 5 um espectro amplo de tipos de dados.
As modificações às modalidades da invenção descritas acima são possíveis sem se distanciar do escopo da invenção como definida pelas reivindicações em anexo. Expressões como "incluindo", "compreendendo", "incorporando", "consistindo de", "possuindo" utilizadas para descrever e 10 reivindicar a presente invenção devem ser consideradas de forma não exclusiva, isto é, permitindo que itens, componentes ou elementos não explicitamente descritos aqui também estejam presentes. Referência ao singular também é considerada relacionada ao plural. Números incluídos entre parênteses nas reivindicações em anexo devem auxiliar na compreensão das 15 reivindicações e não devem ser considerados de forma alguma limitadores da presente matéria reivindicada por essas reivindicações.

Claims (27)

1. Método de codificação de dados fonte (20) para gerar dados codificados correspondentes (30) para transmissão ou armazenamento, onde os dados fonte incluem pelo menos um dentre dados de áudio, dados de imagem, dados de vídeo, dados de gráficos, dados multidimensionais, dados de medição, caracterizado pelo fato de o método incluir: (a) a combinação de uma ou mais partes dos dados fonte (20) para um ou mais elementos (E) em uma ou mais bases de dados (100), onde os um ou mais elementos (E) são representativos dos um ou mais blocos de dados correspondentes, e a gravação de uma pluralidade de bases de dados selecionadas e dos valores de referência (R) que relacionam uma ou mais partes dos dados fonte (20) a um ou mais elementos combinados (E); em que a pluralidade de bases de dados selecionadas inclui simultaneamente uma ou mais bases de dados estáticas e uma ou mais bases de dados dinâmicas usadas na codificação dos dados; e (b) a inclusão de valores de referência (R) nos dados codificados (30) juntamente com a pluralidade de bases de dados selecionadas (100) e/ou informação identificando a pluralidade de bases de dados selecionadas (100) bem como uma seleção de um ou mais métodos de codificação empregados para gerar os dados codificados, onde o método inclui adicionalmente: (c) a divisão de pelo menos uma parte dos dados fonte (20) em uma ou mais áreas possuindo um identificador de área singular (U), em que uma ou mais áreas contêm uma ou mais porções dos dados fonte, dependendo da parte dos dados fonte divididos; (d) a coleta de amostras específicas de área dos dados fonte a partir das áreas usando uma ou mais abordagens de amostragem e a computação de valores de referência correspondentes (R) com base nas amostras específicas de área; e (e) a verificação de se ou não a uma ou mais áreas dos dados fonte correspondentes aos valores de referência (R) obtidos a partir das computações aplicadas aos dados fonte (20) já foram armazenadas em uma ou mais bases de dados (100) ou transmitidas, e a transmissão dos valores de referência (R), ou valores de referência (R) em um estado comprimido, para identificação singular de elementos (E) nos dados codificados (30) quando uma ou mais áreas dos dados fonte já foram armazenadas em uma ou mais bases de dados ou a transmissão de dados fonte codificados e/ou não codificados (20) nos dados codificados (30) quando a uma ou mais áreas dos dados fonte não foram previamente armazenadas nas uma ou mais bases de dados (100).
2. Método, de acordo com a reivindicação 1, caracterizado pelo fato de o método incluir o emprego de uma ou mais bases de dados de média zero para implementação de uma ou mais bases de dados (100).
3. Método, de acordo com a reivindicação 1, caracterizado pelo aato de o método incluir pelo menos um dentre: (a) a geração de uma ou mais bases de dados mais estáticas (110) pela seleção de elementos de uma ou mais bases de dados dinâmicas (120); (b) o processamento de informação presente em uma ou mais partes dos dados fonte (20) para gerar um ou mais elementos (E) para inclusão em uma ou mais bases de dados dinâmicas (120); e (c) seleção de elementos (E) de uma ou mais bases de dados anteriores (100) e incluindo os mesmos em uma ou mais bases de dados dinâmicas (120) para uso com os dados codificados (30).
4. Método, de acordo com a reivindicação 1, caracterizado pelo fato de uma ou mais bases de dados (100) serem hospedadas em um ou mais servidores de dados.
5. Método, de acordo com a reivindicação 4, caracterizado pelo fato de o método incluir o controle remoto de um ou mais servidores de dados.
6. Método, de acordo com a reivindicação 4, caracterizado pelo fato de o método incluir o compartilhamento de uma ou mais bases de dados (100) entre pelo menos um codificador (10) que opera para gerar os dados codificados (30) e pelo menos um decodificador (50) destinado ao recebimento dos dados codificados (30).
7. Método, de acordo com a reivindicação 1, caracterizado pelo fato de o método ser implementado em um codificador (10) que é acoplado através de uma rede de comunicação a uma ou mais bases de dados (100), onde pelo menos uma ou mais bases de dados (100) estão em uma rede de área local mutuamente similar (LAN, Bluetooth, WLAN, GSM, 3G, 4G, 5G, LTE) à rede de comunicação do codificador (10).
8. Método, de acordo com a reivindicação 1, caracterizado pelo fato de os valores de referência (R, 300) incluírem múltiplas partes (310A, 310B, 310C) que são codificadas separadamente para inclusão nos dados codificados (30).
9. Método, de acordo com a reivindicação 1, caracterizado pelo aato de os elementos de uma ou mais bases de dados dinâmicas (120) serem dispostos quando combinações de uma ou mais partes dos dados fonte (20) com um ou mais elementos em uma ou mais bases de dados estáticas (110) não forem encontradas.
10. Método, de acordo com a reivindicação 1, caracterizado pelo aato de a combinação de uma ou mais partes dos dados fonte (20) com um ou mais elementos (E) de uma ou mais bases de dados (100) ser feita dentro de um limite de qualidade, onde o limite de qualidade é dinamicamente alterado durante a geração dos valores de referência (R).
11. Método, de acordo com a reivindicação 1, caracterizado pelo fato de um ou mais valores de referência (R) serem utilizados para reconstruir uma ou mais partes correspondentes dos dados fonte (20) utilizando um ou mais elementos (E) definidos por um ou mais valores de referência (R), e onde erros são determinados entre as uma ou mais partes reconstruídas e uma ou mais partes originais correspondentes nos dados fonte, e os erros serem codificados e incluídos nos dados codificados (30).
12. Método, de acordo com a reivindicação 1, caracterizado pelo fato de um ou mais elementos (E) de uma primeira base de dados (100) serem operacionais para fazer referência a um ou mais elementos (E) presentes em uma ou mais outras dentre as uma ou mais bases de dados (100).
13. Método, de acordo com a reivindicação 1, caracterizado pelo tato de uma ou mais bases de dados (100) serem selecionadas e/ou variarem de tamanho dependendo de uma natureza do conteúdo presente nos dados fonte (20).
14. Codificador (10) para codificação de dados fonte (20) para geração de dados codificados correspondentes (30), onde os dados fonte incluem pelo menos um dentre: dados de áudio, dados de imagem, dados de vídeo, dados gráficos, dados multidimensionais, dados de medição caracterizado pelo fato de o codificador (10) incluir: (a) primeiro hardware de processamento de dados para combinar uma ou mais partes dos dados fonte (20) com um ou mais elementos (E) em uma ou mais bases de dados (100), usando valores de referência para determinar combinações, onde um ou mais elementos (E) são representativos dos um ou mais blocos de dados correspondentes, e a gravação de uma pluralidade de bases de dados selecionadas e de valores de referência (R) que se referem a uma ou mais partes dos dados fonte (20) em um ou mais elementos combinados (E); e (b) segundo hardware de processamento de dados para inclusão dos valores de referência (R) nos dados codificados (30) juntamente com uma ou mais bases de dados (100) e/ou informação identificando a pluralidade de bases de dados selecionadas, bem como a seleção de um ou mais métodos de codificação empregados para gerar o método codificado, em que a pluralidade de bases de dados selecionadas inclui simultaneamente uma ou mais bases de dados estáticas e uma ou mais bases de dados dinâmicas usadas na codificação dos dados fonte; onde o codificador (10) opera para: (c) receber os dados fonte (20), na forma de um ou mais blocos de dados, dividir pelo menos uma parte dos dados fonte (20) em áreas possuindo um identificador de área singular (U), em que uma ou mais áreas contêm uma ou mais porções dos dados originados, dependendo da parte dos dados fonte divididos; (d) coletar as amostras específicas de área dos dados fonte das áreas e computador os valores de referência correspondentes (R) com base nas amostras específicas de área; e (e) verificar se ou não uma ou mais áreas dos dados fonte correspondentes aos valores de referência (R) obtidos como resultado das computações aplicadas aos dados fonte (20) já foram armazenadas em uma ou mais bases de dados (100) ou transmitidas e para transmitir os valores de referência (R) ou os valores de referência (R) em um estado comprimido para identificação singular de elementos (E) das bases de dados nos dados codificados (30) quando uma ou mais áreas dos dados fonte já foram armazenadas em uma ou mais bases de dados (100) ou para transmitir os dados fonte codificados e/ou originais para os dados codificados (30) e opcionalmente armazenar como um novo elemento (E) em uma ou mais bases de dados (100) quando uma ou mais áreas dos dados fonte não foram previamente armazenadas em uma ou mais bases de dados (100).
15. Método de decodificação de dados codificados (30) fornecidos por um método, de acordo com a reivindicação 1, para gerar dados de saída decodificados correspondentes (60), caracterizado pelo fato de o método de decodificação incluir: (a) o recebimento de dados codificados (30) incluindo valores de referência (R, 300) e informação referente aos identificadores de área (U) e informação referente a uma ou mais bases de dados (100) e uma seleção de uma ou mais técnicas de codificação em que a pluralidade de bases de dados selecionadas e uma seleção de um ou mais métodos de codificação usados, em que os dados codificados são codificados por uma ou mais técnicas de codificação, em que a pluralidade de bases de dados selecionadas inclui simultaneamente uma ou mais bases de dados estáticas e uma ou mais bases de dados dinâmicas usadas na codificação dos dados fonte; (b) a decodificação a partir dos dados codificados (30) dos valores de referência (R, 300); (c) o acesso a um ou mais elementos (E) a partir de uma ou mais bases de dados (100) da pluralidade de bases de dados selecionadas como direcionados pelos valores de referência (R, 300), onde um ou mais elementos (E) são representativos de um ou mais blocos de dados correspondentes; e (d) a montagem de um ou mais blocos de dados correspondentes de um ou mais elementos acessados para fornecer dados para uso na geração dos dados de saída decodificados (60).
16. Método, de acordo com a reivindicação 15, caracterizado pelo fato de o método incluir: (a) a manutenção de dados em uma base de dados, onde os dados incluem pelo menos um dentre dados de áudio, dados de imagem, dados de vídeo, dados gráficos, dados multidimensionais, dados de medição correspondentes aos valores de referência (R); (b) a geração de identificadores de área (U) com base na informação referente a identificadores de área incluídos nos dados codificados (30); (c) o recebimento ou recuperação a partir dos dados codificados de um valor de referência (R) correspondente a um ou mais identificadores de área (U); (d) a recuperação a partir da base de dados com base no valor de referência (R) para um identificador de área correspondente (U) de dados correspondentes ao valor de referência (R); e (e) a geração, com base nos dados recuperados a partir da base de dados, de um bloco de dados que é montado nos dados de saída decodificados (60) com base no identificador de área (U).
17. Método, de acordo com a reivindicação 15, caracterizado pelo fato de o método ser executado em um decodificador (50) que é acoplado através de uma rede de comunicação para uma ou mais bases de dados (100).
18. Método, de acordo com a reivindicação 15, caracterizado pelo fato de uma ou mais bases de dados (100) serem espacialmente dispostas localmente para o hardware de processamento de dados (50) disposto para executar o método de decodificação.
19. Método, de acordo com a reivindicação 18, caracterizado pelo fato de uma ou mais bases de dados (100) serem hospedadas em uma rede de área local (LAN, Bluetooth, WLAN, GSM, 3G, 4G, 5G, LTE) que também inclui o hardware de processamento de dados (50), onde o hardware de processamento de dados (50) é acoplado a uma ou mais bases de dados (100) em uma rede de área local mutuamente similar (LAN, Bluetooth, WLAN, GSM, 3G, 4G, 5G, LTE) à rede de comunicação do hardware de processamento de dados (50).
20. Método, de acordo com a reivindicação 15, caracterizado pelo fato de uma ou mais bases de dados (100) serem fornecidas por um ou mais servidores de dados.
21. Método, de acordo com a reivindicação 20, caracterizado eelo atoo de um ou mais servidores de dados serem remotamente controlados.
22. Método, de acordo com a reivindicação 20, caracterizado eelo atoo de uma ou mais bases de dados (100) serem compartilhadas entre pelo menos um codificador (10) que opera para gerar dados codificados (30) e pelo menos um decodificador incluindo o hardware de processamento de dados (50) destinado ao recebimento dos dados codificados (30).
23. Método, de acordo com a reivindicação 15, caracterizado pelo fato de o método incluir a geração de uma ou mais bases de dados dinâmicas (120) a partir de um ou mais elementos (E) de uma ou mais bases de dados estáticas (110) e/ou da informação fornecida nos dados codificados (30), onde uma ou mais bases de dados dinâmicas geradas (120) são empregadas para decodificação de dados codificados (30).
24. Decodificador (50) para decodificar os dados codificados (30) para gerar dados decodificados correspondentes (60), onde o decodificador inclui: (a) primeiro hardware de processamento de dados para o recebimento de dados codificados (30) incluindo valores de referência (R, 300) e informação referente a identificadores de área (U) e informação referente a uma ou mais bases de dados (100) e uma seleção de uma ou mais técnicas de codificação em que a pluralidade de bases de dados selecionadas e uma seleção de um ou mais métodos de codificação usados, em que os dados codificados são codificados por uma ou mais técnicas de codificação, em que a pluralidade de bases de dados selecionadas inclui simultaneamente uma ou mais bases de dados estáticas e uma ou mais bases de dados dinâmicas usadas na codificação dos dados fonte; (b) segundo hardware de processamento de dados para decodificação a partir dos dados codificados (30) os valores de referência (R, 300); (c) terceiro hardware de processamento para acessar um ou mais elementos (E) a partir da pluralidade de bases de dados (100) selecionadas como direcionado pelos valores de referência (R, 300), onde um ou mais elementos (E) são representativos de um ou mais blocos de dados correspondentes; e (d) quarto hardware de processamento para montar o um ou mais blocos de dados do um ou mais elementos acessados para fornecer dados para uso na geração dos dados de saída decodificados totais correspondentes (60).
25. Codec (5), incluindo pelo menos um codificador (10) para codificar dados fonte (20) para gerar dados codificados correspondentes (30), o codificador compreendendo: (a) primeiro hardware de processamento de dados para combinar uma ou mais porções dos dados fonte a um ou mais elementos em uma ou mais bases de dados, usando valores de referência para determinar as combinações, em que o um ou mais elementos são representativos de um ou mais blocos de dados correspondentes e gravando uma pluralidade de bases de dados selecionadas e os valores de referência que relacionam a uma ou mais porções dos dados fonte a um ou mais elementos correspondentes, em que a pluralidade de bases de dados selecionadas inclui simultaneamente uma ou mais bases de dados estáticas e uma ou mais bases de dados dinâmicas usadas na codificação dos dados fonte; e (b) segundo hardware de processamento de dados para incluir os valores de referência nos dados codificados juntamente com a pluralidade de bases de dados selecionadas e/ ou informações que identificam a pluralidade de bases de dados selecionadas, bem como uma seleção de um ou mais métodos de codificação empregados para gerar os dados codificados; em que o codificador é operável para: (i) receber os dados fonte na forma de um ou mais blocos de dados, dividir, pelo menos, uma parte dos dados fonte em áreas com um identificador de área único, em que uma ou mais áreas contêm uma ou mais porções dos dados fonte, dependendo da parte dos dados fonte dividida; (ii) coletar amostras específicas da área dos dados fonte das áreas usando uma ou mais abordagens de amostragem e calcular os valores de referência correspondentes com base nas amostras específicas da área; (iii) verificar se ou não uma ou mais áreas dos dados fonte correspondentes aos valores de referência obtidas a partir de cálculos aplicados aos dados fonte já foram armazenadas em uma ou mais bases de dados ou transmitidas; e (iv) transmitir os valores de referência, ou os valores de referência em um estado compactado, para identificar exclusivamente os elementos da base de dados nos dados codificados quando uma ou mais áreas dos dados fonte já tiverem sido armazenadas em um ou mais bases de dados, ou (v) transmitir os dados fonte codificados e/ou não codificados para os dados codificados quando uma ou mais áreas dos dados fonte não tiverem sido armazenadas anteriormente em uma ou mais bases de dados; e (vi) pelo menos um decodificador recebendo os dados codificados e para decodificar os dados codificados para gerar os dados decodificados correspondentes, o decodificador compreendendo: (1) primeiro hardware de processamento de dados para receber dados codificados, incluindo valores de referência e informações sobre identificadores de área e informações sobre pluralidade de bases de dados selecionadas, bem como uma seleção de um ou mais métodos de codificação usados; (2) segundo hardware de processamento de dados para decodificar a partir dos dados codificados os valores de referência; (3) terceiro hardware de processamento de dados para acessar um ou mais elementos da pluralidade de bases de dados selecionadas, conforme direcionado pelos valores de referência, em que um ou mais elementos são representativos de um ou mais blocos de dados correspondentes; e (4) quarto hardware de processamento de dados para montar o um ou mais blocos de dados correspondentes do um ou mais elementos acessados para fornecer dados para uso na geração de dados de saída decodificados.
26. Mídia de armazenamento não transitória legível por máquina que compreende instruções de computador, as quais, quando executadas por um hardware de computação de um codificador (10), fazem com que o codificador (10) execute o método compreendendo: (a) combinar uma ou mais porções dos dados fonte (20) a um ou mais elementos (E) em uma ou mais bases de dados (100), em que um ou mais elementos (E) são representativos de um ou mais blocos de dados correspondentes, e registrar uma pluralidade de bases de dados selecionadas e valores de referência (R) que relacionam uma ou mais porções dos dados fonte (20) a um ou mais elementos correspondentes (E), em que a pluralidade de bases de dados selecionadas inclui simultaneamente uma ou mais bases de dados estáticas e um ou mais bases de dados dinâmicas usadas na codificação dos dados fonte; e (b) incluir os valores de referência (R) nos dados codificados (30) juntamente com a pluralidade de bases de dados selecionadas (100) e/ ou informações que identificam a pluralidade de bases de dados selecionadas (100), bem como uma seleção de um ou mais métodos de codificação empregados para gerar os dados codificados, onde o método inclui ainda: (c) dividir pelo menos uma parte dos dados fonte (20) em uma ou mais áreas tendo um identificador de área único (U), em que uma ou mais áreas contêm uma ou mais porções dos dados fonte dependendo da parte dos dados fontes dividida; (d) coletar amostras específicas da área dos dados fonte das áreas usando uma ou mais abordagens de amostragem e calcular os valores de referência correspondentes (R) com base nas amostras específicas da área; e (e) verificar se ou não a uma ou mais áreas dos dados fonte correspondentes aos valores de referência (R) obtidos a partir de cálculos aplicados aos dados fonte (20) já foram armazenadas em uma ou mais bases de dados (100) ou transmitidas, e transmitir os valores de referência (R), ou os valores de referência (R) em um estado compactado, para identificar exclusivamente os elementos (E) nos dados codificados (30) quando a uma ou mais áreas dos dados fonte já foram armazenadas na uma ou mais bases de dados ou transmitir os dados fonte codificados e/ ou não codificados (20) para os dados codificados (30) quando uma ou mais áreas de dados de origem não foram armazenadas anteriormente em uma ou mais bases de dados (100).
27. Mídia de armazenamento não transitória legível por máquina que compreende instruções de computador, as quais, quando executadas por um hardware de computação de um decodificador (50), fazem com que o decodificador (50) execute o método compreendendo: (a) receber dados codificados (30) incluindo valores de referência (R, 300) e informações sobre identificadores de área (U) e informações sobre uma ou mais bases de dados (100) e uma seleção de uma ou mais técnicas de codificação em que a pluralidade de bases de dados selecionadas, e uma seleção de um ou mais métodos de codificação usados, em que os dados codificados são codificados por uma ou mais técnicas de codificação, em que a pluralidade de bases de dados selecionadas inclui simultaneamente uma ou mais bases de dados estáticas e uma ou mais bases de dados dinâmicas usadas na codificação dos dados fonte; (b) decodificar a partir dos dados codificados (30) os valores de referência (R, 300); (c) acessar um ou mais elementos (E) a partir de uma ou mais bases de dados (100) a partir da pluralidade de bases de dados selecionadas, conforme direcionado pelos valores de referência (R, 300), em que um ou mais elementos (E) são representativos de um ou mais blocos de dados correspondentes; e (d) montar um ou mais blocos de dados correspondentes de um ou mais elementos acessados para fornecer dados para uso na geração dos dados de saída decodificados totais (60).
BR102013031748-9A 2012-12-11 2013-12-10 Codificador, decodificador e método BR102013031748B1 (pt)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
GB1222240.2A GB2509055B (en) 2012-12-11 2012-12-11 Encoder and method
GB1222240.2 2012-12-11

Publications (2)

Publication Number Publication Date
BR102013031748A2 BR102013031748A2 (pt) 2014-09-02
BR102013031748B1 true BR102013031748B1 (pt) 2023-04-11

Family

ID=47602368

Family Applications (1)

Application Number Title Priority Date Filing Date
BR102013031748-9A BR102013031748B1 (pt) 2012-12-11 2013-12-10 Codificador, decodificador e método

Country Status (10)

Country Link
US (1) US20140161195A1 (pt)
EP (1) EP2744213A1 (pt)
JP (2) JP6021792B2 (pt)
KR (1) KR101737158B1 (pt)
CN (1) CN103873863B (pt)
BR (1) BR102013031748B1 (pt)
GB (1) GB2509055B (pt)
IN (1) IN2013MU03703A (pt)
RU (1) RU2613031C2 (pt)
TW (1) TWI549485B (pt)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2527607B (en) 2014-06-27 2016-10-05 Gurulogic Microsystems Oy Encoder, decoder and method
CN105704177A (zh) * 2014-11-26 2016-06-22 阿里巴巴集团控股有限公司 一种ua识别方法、装置
EP3067889A1 (en) 2015-03-09 2016-09-14 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Method and apparatus for signal-adaptive transform kernel switching in audio coding
GB2539488B8 (en) 2015-06-18 2020-08-19 Gurulogic Microsystems Oy Encoder, decoder and method employing palette utilization and compression
CN107431809B (zh) * 2015-07-27 2020-02-14 华为技术有限公司 图像处理的方法和装置
US10467006B2 (en) * 2015-12-20 2019-11-05 Intel Corporation Permutating vector data scattered in a temporary destination into elements of a destination register based on a permutation factor
GB2547442B (en) * 2016-02-17 2022-01-12 V Nova Int Ltd Physical adapter, signal processing equipment, methods and computer programs
US10319271B2 (en) * 2016-03-22 2019-06-11 Manufacturing Resources International, Inc. Cyclic redundancy check for electronic displays
CN107196989B (zh) * 2017-03-21 2019-08-09 阿里巴巴集团控股有限公司 一种业务请求的处理方法及装置
CN107392040B (zh) * 2017-04-28 2019-08-09 阿里巴巴集团控股有限公司 一种共识验证的方法及装置
CN116389737B (zh) * 2019-03-11 2024-05-31 北京达佳互联信息技术有限公司 视频编解码中变换系数的编解码
RU2746716C1 (ru) * 2020-07-06 2021-04-19 Федеральное государственное бюджетное образовательное учреждение высшего обазования "Поволжский государственный университет телекоммуникаций и информатики" Способ управления буферной памятью потокового видео
WO2022079466A1 (en) * 2020-10-13 2022-04-21 Chan Kam Fu Data authentication for data compression
US11895362B2 (en) 2021-10-29 2024-02-06 Manufacturing Resources International, Inc. Proof of play for images displayed at electronic displays

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4013828A (en) * 1976-02-20 1977-03-22 Bell Telephone Laboratories, Incorporated Method and arrangement for reducing the bandwidth and/or time required to transmit a dithered image
US4553171A (en) * 1984-01-27 1985-11-12 Xerox Corporation Tile encoding in image printing
GB2190560B (en) * 1986-05-08 1990-06-20 Gen Electric Plc Data compression
JP3130324B2 (ja) * 1991-02-20 2001-01-31 富士通株式会社 データ圧縮方式
FI97096C (fi) * 1994-09-13 1996-10-10 Nokia Mobile Phones Ltd Videonkompressiomenetelmä
JP3482054B2 (ja) * 1995-11-29 2003-12-22 シャープ株式会社 画像符号化装置
MXPA02004015A (es) * 1999-10-22 2003-09-25 Activesky Inc Un sistema de video orientado a los objetos.
GB2362055A (en) * 2000-05-03 2001-11-07 Clearstream Tech Ltd Image compression using a codebook
US8300043B2 (en) * 2004-06-24 2012-10-30 Sony Ericsson Mobile Communications AG Proximity assisted 3D rendering
JP5056348B2 (ja) * 2007-10-29 2012-10-24 ソニー株式会社 情報処理装置および方法、並びにプログラム
EP2277317B1 (en) * 2008-05-19 2021-01-27 Citrix Systems, Inc. Systems and methods for enhanced image encoding
AU2010234364B2 (en) * 2009-04-08 2014-12-11 Newrow, Inc. System and method for image compression
FI127117B (fi) * 2009-06-17 2017-11-30 Gurulogic Microsystems Oy Kuvaprosessoija ja tietokoneohjelma

Also Published As

Publication number Publication date
KR20150053870A (ko) 2015-05-19
RU2613031C2 (ru) 2017-03-14
JP2014116940A (ja) 2014-06-26
JP2016213862A (ja) 2016-12-15
JP6021792B2 (ja) 2016-11-09
GB2509055A (en) 2014-06-25
US20140161195A1 (en) 2014-06-12
BR102013031748A2 (pt) 2014-09-02
KR101737158B1 (ko) 2017-05-17
CN103873863B (zh) 2019-05-10
IN2013MU03703A (pt) 2015-07-31
GB2509055B (en) 2016-03-23
CN103873863A (zh) 2014-06-18
EP2744213A1 (en) 2014-06-18
RU2013153468A (ru) 2015-06-10
TW201433147A (zh) 2014-08-16
GB201222240D0 (en) 2013-01-23
TWI549485B (zh) 2016-09-11

Similar Documents

Publication Publication Date Title
BR102013031748B1 (pt) Codificador, decodificador e método
US10255315B2 (en) Encoder, decoder and method
JP5550005B2 (ja) ランダムアクセス機能による画像圧縮方法
JP2014116940A5 (pt)
RU2503138C2 (ru) Кодирование встраиваемой графики для изображений с разреженными гистограммами
TWI590662B (zh) 解碼器及解碼方法
US20190213758A1 (en) Lossless compression of fragmented image data
US8600183B2 (en) Optimized method and system for entropy coding
BR112014001056B1 (pt) Varredura de coeficiente em codificação de vídeo
FR2894421A1 (fr) Procede et dispositif de decodage d'un flux video code suivant un codage hierarchique
BR102013027082A2 (pt) Codificador, decodificador e método
US9083952B2 (en) System and method for relative storage of video data
US20180061428A1 (en) Variable length coding of indices and bit scheduling in a pyramid vector quantizer
BR112021001958A2 (pt) transformações para codificação de intensificação de sinal
WO2020115471A1 (en) Bit plane encoding of data arrays
BR112020000415A2 (pt) método para compactar; método para descompactar; conjunto de dados compactados correspondente a um conjunto de dados não compactados; dispositivo para compactar e dispositivo para descompactar
BR112016011972B1 (pt) Processo de codificação de pelo menos uma imagem cortada em blocos e dispositivo de decodificação de um sinal de dados representativo de pelo menos uma imagem cortada em blocos
US10536697B2 (en) Method for re-encoding image and apparatus therefor
WO2024065271A1 (zh) 点云编解码方法、装置、设备及存储介质
US20220309048A1 (en) Method for storing data to and retrieving data from at least one data storage, system, use, computer program, and computer readable medium
FIORINI Universal True Lossless Combinatorial Data Compression
BR102013020614B1 (pt) Decodificador e método
BR112014001208B1 (pt) Processamento de sinal e herança em uma hierarquia de qualidade de sinal enfileirada
BR102013020614A2 (pt) Decoder and method

Legal Events

Date Code Title Description
B03A Publication of a patent application or of a certificate of addition of invention [chapter 3.1 patent gazette]
B06F Objections, documents and/or translations needed after an examination request according [chapter 6.6 patent gazette]
B15K Others concerning applications: alteration of classification

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

Ipc: H04N 19/44 (2014.01), H04N 19/46 (2014.01), H04N 1

B06U Preliminary requirement: requests with searches performed by other patent offices: procedure suspended [chapter 6.21 patent gazette]
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 10/12/2013, OBSERVADAS AS CONDICOES LEGAIS