BRPI0807465B1 - Método de decodificação de mídia digital, método de codificação de mídia digital, mídia de armazenamento legível por computador, dispositivo de decodificação e dispositivo de codificação - Google Patents

Método de decodificação de mídia digital, método de codificação de mídia digital, mídia de armazenamento legível por computador, dispositivo de decodificação e dispositivo de codificação Download PDF

Info

Publication number
BRPI0807465B1
BRPI0807465B1 BRPI0807465-8A BRPI0807465A BRPI0807465B1 BR PI0807465 B1 BRPI0807465 B1 BR PI0807465B1 BR PI0807465 A BRPI0807465 A BR PI0807465A BR PI0807465 B1 BRPI0807465 B1 BR PI0807465B1
Authority
BR
Brazil
Prior art keywords
digital media
transform
precision
arithmetic
decoding
Prior art date
Application number
BRPI0807465-8A
Other languages
English (en)
Inventor
Sridhar Srinivasan
Chengjie Tu
Shankar Regunathan
Original Assignee
Microsoft Technology Licensing, Llc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Technology Licensing, Llc filed Critical Microsoft Technology Licensing, Llc
Publication of BRPI0807465A2 publication Critical patent/BRPI0807465A2/pt
Publication of BRPI0807465A8 publication Critical patent/BRPI0807465A8/pt
Publication of BRPI0807465B1 publication Critical patent/BRPI0807465B1/pt

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/65Transmission of management data between client and server
    • H04N21/654Transmission by server directed to the client
    • H04N21/6547Transmission by server directed to the client comprising parameters, e.g. for client setup
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/12Selection from among a plurality of transforms or standards, e.g. selection between discrete cosine transform [DCT] and sub-band transform or selection between H.263 and H.264
    • H04N19/122Selection of transform size, e.g. 8x8 or 2x4x8 DCT; Selection of sub-band transforms of varying structure or type
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/156Availability of hardware or computational resources, e.g. encoding based on power-saving criteria
    • 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
    • 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/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding

Landscapes

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

Abstract

método de decodificação de mídia digital, método de codificação de mídia digital, mídia de armazenamento legível por computador, dispositivo de decodificação e dispositivo de codificação a presente invenção refere-se a um método de decodificação de mídia digital, um método de codificação de mídia digital, e um codificador/decodificador de mídia digital que inclui sinalização de vários modos relacionados à complexidade computacional e precisão na decodificação. o codificador pode enviar um elemento de sintaxe indicando precisão aritmética (por exemplo, utilizando operações de 16 ou 32 bits) das operações de transformada desempenhadas na decodificação. o codificador pode sinalizar se aplica ou não escala na saída do decodificador, o que permite uma faixa dinâmica mais ampla de dados intermediários, porém soma para complexidade computacional devido à operação de escala.

Description

Relatório Descritivo da Patente de Invenção para MÉTODO DE DECODIFICAÇÃO DE MÍDIA DIGITAL, MÉTODO DE CODIFICAÇÃO DE MÍDIA DIGITAL, MÍDIA DE ARMAZENAMENTO LEGÍVEL POR COMPUTADOR, DISPOSITIVO DE DECODIFICAÇÃO E DISPOSITIVO DE CODIFICAÇÃO.
ANTECEDENTES
Codificação baseada em transformada de bloco
[001] Codificação de transformada é uma técnica de compressão utilizada em muitos sistemas de compressão de mídia digital (por exemplo, áudio, imagem e vídeo). Imagem e vídeo digitais nãocomprimidos são tipicamente representados ou capturados como amostras de elementos de imagem ou cores em localizações em um quadro de imagem ou vídeo disposto em uma rede bidimensional (2D). Isto é referido como uma representação de domínio espacial da imagem ou vídeo. Por exemplo, um formato típico para as imagens consiste em um fluxo de amostras do elemento de imagem de cor de 24 bits disposto como uma rede. Cada amostra é um número representando componentes de cores em uma localização de pixels na rede dentro de um espaço de cor, tal como RGB, ou YIQ, entre outros. Vários sistemas de imagem e vídeo podem utilizar várias cores diferentes, resoluções de tempo e espaço de amostragem. De modo similar, o áudio digital é tipicamente representado como fluxo de sinal de áudio amostrado no tempo. Por exemplo, um formato de áudio típico consiste em um fluxo de amostras de amplitude de 16 bits de um sinal de áudio levado em intervalos de tempo regulares.
[002] Sinais de áudio, imagem e vídeo digitais podem assumir considerável capacidade de transmissão e armazenamento. A codificação de transformada reduz o tamanho de áudio, imagens e vídeo digitais transformando a representação de domínio espacial do sinal em uma representação de domínio de frequência (ou outro domínio de
Petição 870190108373, de 25/10/2019, pág. 5/43
2/31 transformada similar), e assim reduzindo a resolução de certos componentes de frequência geralmente menos perceptíveis da representação de domínio de transformada. Isto geralmente produz degradação muito menos perceptível do sinal digital comparado à redução de resolução de cor ou espacial de imagens ou vídeo do domínio espacial, ou de áudio no domínio de tempo.
[003] Mais especificamente, um sistema encodificador / decodificador baseado em transformada de bloco típico 100 (também chamado um codec) mostrado na Figura 1 divide os pixels da imagem digital não-comprimida em blocos bidimensionais de tamanho fixo (Xi, Xn), cada bloco possivelmente se sobrepondo aos outros blocos. Uma transformada linear 120 a 121 que faz análise de frequência - espacial é aplicada a cada bloco, que converte as amostras espaçadas dentro do bloco para um conjunto de coeficientes de frequência (ou transformada) geralmente representando a intensidade do sinal digital em bandas de frequência correspondentes sobre o intervalo de bloco. Para compreensão, os coeficientes de transformada podem ser seletivamente quantizados 130 (isto é, reduzido em resolução, tal como abandonado bits menos significativos dos valores de coeficiente ou de outro modo valores de mapeamento em um conjunto de número de resolução maior em uma resolução menos), e também codificado em comprimento variável ou entropia 130 em um fluxo de dados comprimido. Na decodificação, os coeficientes de transformada transformam inversamente 170 a 171 para quase reconstruir a amostra espacial / cor original do sinal de imagem / vídeo (blocos reconstruídos Xi, Xn).
[004] A transformada de bloco 120 a 121 pode ser definida como uma operação matemática em um vetor x de tamanho N. Mais frequentemente, a operação é uma multiplicação linear, produzindo a saída de domínio de transformada y = Mx, M sendo a matriz de transformada. Quando os dados de entrada forem arbitrariamente longos, ele
Petição 870190108373, de 25/10/2019, pág. 6/43
3/31 é segmentado em vetores de tamanho N e a transformada de bloco é aplicada a cada segmento. Para a finalidade de compressão de dados, as transformadas de bloco reversíveis são mostradas. Em outras palavras, a matriz M é invertível. Em múltiplas dimensões (por exemplo, para imagem e vídeo), transformadas de bloco são tipicamente implementadas como operações separáveis. A multiplicação de matriz é aplicada separadamente ao longo de cada dimensão dos dados (isto é, ambas as linhas e colunas).
[005] Para compreensão, os coeficientes de transformada (componentes de vetor y) podem ser seletivamente quantizados (isto é, reduzidos em resolução, tal como abandonando bits menos significantes dos valores de coeficiente ou de outro modo valores de mapeamento em um conjunto de número de resolução maior para uma resolução menor), e também codificados no comprimento variável ou entropia em um fluxo de dados comprimido.
[006] Na decodificação no decodificador 150, o inverso destas operações (decodificação de dequantização / entropia 160 e transformada de bloco inversa 170-171) é aplicado no lado do decodificador 150, como mostrado na Figura 1. Enquanto reconstrói os dados, a matriz inversa M'1 (transformada inversa 170 a 171) é aplicada como um multiplicador aos dados de domínio de transformada. Quando aplicado aos dados de domínio de transformada, a transformada inversa quase reconstrói a mídia digital de domínio espacial ou de domínio de frequência.
[007] Em muitas aplicações de codificação baseadas na transformada de blocos, a transformada é revertivelmente desejável para suportar ambas as compressões com perda ou sem perda dependendo do fator de quantização. Sem quantização (geralmente representado como um fator de quantização de 1) por exemplo, um codec utilizando uma transformada reversível pode reproduzir exatamente os dados de entrada na decodificação. No entanto, o requerimento de re
Petição 870190108373, de 25/10/2019, pág. 7/43
4/31 versibilidade nestas aplicações restringe a escolha de transformadas pela qual o codec pode ser designado.
[008] Muitos sistemas de compressão de vídeo e imagem, tais como Mídia MPEG e Windows, entre outras, utilizam transformadas baseadas na Transformada Discreta de Cosseno (DCT). A DCT é conhecida para ter propriedades de condensação de energia favorável que resultam na compressão de dados quase ótima. Nestes sistemas de compressão, a DCT inversa (IDCT) é empregada nas malhas de reconstrução em ambos o encodificador e o decodificador do sistema de compressão para blocos de imagem individual de reconstrução. Quantização
[009] A quantização é o mecanismo primário para a maioria dos codecs de imagem e vídeo para controlar a qualidade de imagem comprimida e o raio de compressão. De acordo com uma possível definição, a quantização é um termo utilizado função de mapeamento não-reversível de aproximação comumente utilizada para compressão com perda, na qual existe um conjunto especificado de valores de saída possíveis, e cada membro do conjunto de valores de saída possíveis possui um conjunto associado de valores de entrada que resultam na seleção daquele valor de saída específico. Uma variedade de técnicas de quantização tem sido desenvolvida, incluindo quantização vetorial ou escalar, uniforme ou não-uniforme, com ou sem zona de morte, e adaptativa ou não-adaptativa.
[0010] A operação de quantização é essencialmente uma divisão polarizada por um parâmetro de quantização QP que é desempenhado no encodificador. A operação de multiplicação ou quantização inversa é uma multiplicação pelo QP desempenhado no decodificador. Estes processos juntos introduzem uma perda nos dados de coeficiente de transformada originais, que aparecem como erros ou artefatos de compressão na imagem decodificada.
Petição 870190108373, de 25/10/2019, pág. 8/43
5/31
Sumário
[0011] A descrição detalhada a seguir apresenta ferramentas e técnicas para controlar a complexidade computacional precisão de decodificação com um codec de mída digital. Em um aspecto das técnicas, o encodificados sinaliza um dos modos de precisão de escala ou de não-escala para utilizar no decodificador. No modo de precisão de escala, a imagem de entrada é pré-multiplicada (por exemplo, por 8) no encodificador. A saída no decodificador também é escalada através de divisão de arredondamento. Em um modo de precisão de nãoescala, nenhuma tais operações de escala são aplicadas. No modo de precisão de não-escala, o encodificador e decodificador podem morrer com uma faixa dinâmica menor para coeficiente de transformada, e assim possui menor complexidade computacional.
[0012] Em um aspecto das técnicas, o codec pode também sinalizar a precisão requerida para desempenhar operações de transformada para o decodificador. Em uma implementação, um elemento da sintaxe do fluxo de bits sinaliza emprega uma operação aritmética de precisão menor para a transformada no decodificador.
[0013] Este sumário é provido para introduzir uma seleção de conceitos de uma forma simplificada que é adicionalmente descrita abaixo na Descrição Detalhada. Este sumário não é destinado a identificar características chave ou características essenciais da material de assunto reivindicado, nem é destinada a ser utilizada como uma ajuda na determinação do escopo da matéria de assunto reivindicado. Características e vantagens adicionais da invenção serão feitas aparentes a partir da seguinte descrição detalhada das modalidades que procedem com referência aos desenhos em anexo.
Breve Descrição dos Desenhos
[0014] A Figura 1 is a diagrama em blocos de um codec baseado na transformada de bloco convencional na técnica anterior.
Petição 870190108373, de 25/10/2019, pág. 9/43
6/31
[0015] A Figura 2 é um diagrama em fluxo de um encodificador representativo incorporando a codificação padrão de bloco.
[0016] A Figura 3 é um diagrama em fluxo de um decodificador representativo incorporando a codificação padrão em bloco.
[0017] A Figura 4 é um diagrama da transformada enrolada inversa incluindo uma transformada de núcleo e operação de pós-filtro (sobreposição) em uma implementação do encodificador / decodificar representativo das Figuras 2 e 3.
[0018] A Figura 5 é um diagrama de identificação dos pontos de dados de entrada para as operações de transformada.
[0019] A Figura 6 é um diagrama em blocos de um ambiente de computação adequável para implementar o encodificado / decodificador de mídia das Figuras 2 e 3.
Descrição Detalhada
[0020] A seguinte descrição refere-se às técnicas para controlar precisão e complexidade computacional de um codec de mídia digital baseado em transformada. A seguinte descrição descreve uma implementação exemplar das técnicas no contexto de um sistema de compressão de mídia digital ou codec. O sistema de mídia digital codifica os dados de mídia digital de uma forma comprimida para transmissão ou armazenamento, e decodifica os dados para reprodução ou outro processamento. Para fim de ilustração, este sistema de compressão exemplar incorporando a complexidade computacional e controle de precisão é um sistema de compressão de vídeo ou imagem. Alternativamente, as técnicas também podem ser incorporadas em sistemas de compressão ou codecs para outros dados de mídia digital. As técnicas de complexidade computacional e o controle de precisão não requerem que o sistema de compressão de mídia digital encodifique os dados de mídia digital comprimidos em um formato de codificação específico.
Petição 870190108373, de 25/10/2019, pág. 10/43
7/31
1. Encodificador I Decodificador
[0021] As Figuras 2 e 3 são um diagrama generalizado do processo empregado em um encodificador 200 e um decodificador 300 de dados bidimensionais (2D) representativo. Os diagramas apresentam uma ilustração generalizada ou simplificada de um sistema de compressão incorporando o encodificador e decodificador de dados 2D que implementam a compressão utilizando técnicas de complexidade computacional e controle de precisão. Nos sistemas de compressão alternativos que utilizam as técnicas de controle, os processos e adicionais ou menores que aqueles ilustrados neste encodificador e decodificador representativo podem ser utilizados para a compressão de dados 2D. Por exemplo, alguns encodificadores / decodificadores podem também incluir conversão de cor, formatos de cor, codificações escalável, codificação sem perda, modos de macroblocos, etc. O sistema de compressão (encodificador e decodificador) pode prover compressão com perda e/ou sem perda dos dados 2D, dependendo da quantização que pode ser baseada em um parâmetro de quantização variando de sem perda para com perda.
[0022] O encodificador de dados 2D 200 produz um fluxo de bits comprimido 220 que é uma representação mais compacta (para entrada típica) de dados 2D 210 apresentada como entrada para o encodificador. Por exemplo, a entrada de dados 2D pode ser uma imagem, um quadro de uma sequência de vídeo, ou outros dados possuindo duas dimensões. O encodificador de dados 2D divide um quadro dos dados de entrada em blocos (geralmente ilustrado na Figure 2 como particionamento 230), que na implementação ilustrada são blocos de pixel 4x4 de não-sobreposição que formam um padrão regular através do plano do quadro. Estes blocos são agrupados em clusters, chamados macroblocos, que são 16χ 16 pixels em tamanho neste encodificador representativo. Por sua vez, os macroblocos são agrupados em estrutu
Petição 870190108373, de 25/10/2019, pág. 11/43
8/31 ras regulares chamadas placas. As placas também formam um padrão regular sobre a imagem, tal que as placas em uma linha horizontal são de altura uniforme e alinhadas, e as placas em uma coluna vertical são de largura uniforme e alinhadas. No encodificador representativo, as placas podem ser qualquer tamanho arbitrário que seja uma multiplicação de 16 na direção horizontal e/ou vertical. Implementações de encodificador alternativas podem dividir a imagem em blocos, macroblocos, placas, ou outras unidades de outros tamanhos e estruturas. [0023] Um operador de sobreposição direta 240 é aplicado em cada borda entre os blocos, após o qual cada bloco 4x4 é transformado utilizando uma transformada de bloco 250. Esta transformada de bloco 250 pode ser a transformada reversível, de escala livre 2D descrita por Srinivasan, Pedido de Patente U.S. No. 11/015,707, intitulada, Reversible Transform For Lossy E Lossless 2 -D Data Compression, depositado em 17 de dezembro de 2004. O operador de sobreposição 240 pode ser o operador de sobreposição reversível descrito por Tu et al., Pedido de Patente U.S. No. 11/015,148, intitulado, Reversible Overlap Operator for Efficient Lossless Data Compression, depositado em 17 de dezembro de 2004; e por Tu et al., Pedido de Patente U.S. No. 11/035,991, intitulado, Reversible 2-Dimensional Pre-/PostFiltering For Lapped Biorthogonal Transform, depositado em 14 de janeiro de 2005. Alternativamente, a transformada discreta de cosseno ou outras transformadas de bloco e operadores de sobreposição podem ser utilizadas. Subsequente à transformada, o coeficiente de DC 260 de cada bloco de transformada 4x4 é submetido a uma cadeia de processamento similar (emplacamento, sobreposição direta, seguido de transformada de bloco 4x4). Os coeficientes de transformada DC resultantes e os coeficientes de transformada AC são quantizados 270, codificados de entropia 280 e empacotados 290.
[0024] O decodificador desempenha o processo reverse. No lado
Petição 870190108373, de 25/10/2019, pág. 12/43
9/31 do decodificador, os bits de coeficientes de transformada são extraídos 310 de seus respectivos pacotes, a partir do qual os coeficientes são decodificados por eles mesmos 320 e dequantizados 330. Os coeficientes DC 340 são regenerados aplicando uma transformada inversa, e o plano de coeficientes DC é sobreposto inversamente utilizando um operador de suavização aplicado através das bordas de bloco DC. Subsequentemente, os dados inteiros são regenerados aplicando a transformada inversa 4X4 350 para os coeficientes DC, e os coeficientes DC 342 decodificados do fluxo de bits. Finalmente, as bordas de bloco nos planos de imagem resultantes são filtrados em sobreposição inversa 360. Isto produz uma saída de dados 2D reconstruídos.
[0025] Em uma implementação exemplar, o encodificador 200 (Figura 2) comprime uma imagem de entrada no fluxo de bits comprimido (por exemplo, um arquivo), e o decodificador 300 (Figura 3) reconstrói a entrada original ou uma aproximação da mesma, com base em se a codificação empregada é com perda ou sem perda. O processo de encodificação envolve a aplicação de uma transformada enrolada direta (LT) discutida abaixo, que é implementada com pré- / pós-filtragem bidimensional reversível também descrita mais totalmente abaixo. O processo de decodificação envolve a aplicação da transformada enrolada inversa (ILT) utilizando a pré- / pós-filtragem bidimensional reversível.
[0026] A LT e a ILT ilustradas são inversas uma da outra, em um sentido exato, e, portanto podem ser coletivamente referidas como transformadas enroladas reversíveis. Como uma transformada reversível, o par LT / ILT pode ser utilizado para compressão de imagem sem perda. [0027] Os dados de entrada 210 comprimidos pelo encodificador ilustrado 200 / decodificador 300 podem ser imagens de vários formatos de cores (por exemplo, formato de imagem de cor RGB/YUV4:4:4, YUV4:2:2 ou YUV4:2:0). Tipicamente, imagem de entrada sempre
Petição 870190108373, de 25/10/2019, pág. 13/43
10/31 possui um componente de luminância (Y).
[0028] Se ele for uma imagem RGB/YUV4:4:4, YUV4:2:2 ou YUV4:2:0, a imagem também possui componentes de crominância, tal como um componente U e um componente V. Os planos de cores separadas ou componentes de imagem podem ter diferentes resoluções espaciais. No caso de uma imagem de entrada no formato de cor YUV 4:2:0 por exemplo, os componentes U e V possuem metade da largura e comprimento do componente y.
[0029] Como discutido acima, o encodificador 200 emplaca a imagem de entrada ou imagem em macroblocos. Em uma implementação exemplar, o encodificador 200 emplaca a imagem de entrada em áreas de 16X16 pixels (chamado macroblocos) no canal Y (que pode ser áreas 16x16, 16x8 ou 8x8 nos canais U e V dependendo do formato de cor). Cada plano de cor de macrobloco é emplacado em regiões ou blocos de 4X4 pixels. Por conseguinte, um macrobloco é composto por vários formatos de cores da seguinte maneira para esta implementação de encodificador exemplar:
1. Para uma imagem em escala de cinza, cada macrobloco contém 16 blocos de luminância 4x4 (Y).
2. Para uma imagem de cor de formato YUV4:2:0, cada macrobloco contém 16 blocos 4x4 Y, e cada 4 blocos de crominância 4x4 (U e V).
3. Para uma imagem de cor de formato YUV4:2:2, cada macrobloco contém 16 blocos 4x4 Y, e cada 8 blocos de crominância 4x4 (U e V).
4. Para uma imagem de cor RGB ou YUV4:4:4, cada macrobloco contém 16 blocos de cada canal Y, U e V.
[0030] Do mesmo modo, após a transformada, um macrobloco neste encodificador representativo 200 / decodificador 300 possui três sub-bandas de frequência: uma sub-banda DC (macrobloco DC), uma
Petição 870190108373, de 25/10/2019, pág. 14/43
11/31 sub-banda passa-baixa (macrobloco passa-baixa), e a sub-banda passa-alta (macrobloco passa-alta). No sistema representativo, as subbandas passa-baixa e/ou passa-alta no fluxo de bits - estas subbandas podem ser inteiramente abandonadas.
[0031] Adicionalmente, os dados comprimidos podem ser empacotados dentro do fluxo de bits em uma de duas ordens: ordem especial e ordem de frequência. Para a ordem espacial, diferentes sub-bandas do mesmo macrobloco dentro de uma placa são ordenados juntamente, e o fluxo de bits resultante de cada placa está gravado dentro de um pacote. Para a ordem de frequência, a mesma sub-banda proveniente de diferentes macroblocos dentro de uma placa é agrupada juntamente, e assim o fluxo de bits de uma placa é gravada em três pacotes: um pacote de placa DC, um pacote de placa passa-baixa, e um pacote de placa passa-alta. Além disso, pode haver outras camadas.
[0032] Desse modo, para o sistema representativo, uma imagem é organizada nas seguintes dimensões:
Dimensão espacial: Placa Macrobloco;
Dimensão de Frequência : DC | passa-baixa | passa-alta; e Dimensão de canal: Luminância | Crominância_0 | Crominância_l ... (por exemplo, como Y | U | V).
[0033] As linhas acima significam uma hierarquia, enquanto que as barras verticais significam um particionamento.
[0034] Apesar de o sistema representativo organizar os dados de mídia digital comprimidos em dimensões de espaço, de frequência e de canal, a aproximação de quantização flexível descrita aqui pode ser aplicada em sistemas alternativos de encodificador / decodificador que organiza seus dados ao longo de dimensões menores, adicionais ou outras. Por exemplo, a aproximação de quantização flexível pode ser aplicada à codificação utilizando um número maior de bandas de frequência, outros formatos de canais de cores (por exemplo, YIQ, RGB,
Petição 870190108373, de 25/10/2019, pág. 15/43
12/31 etc.), canais de imagem adicionais (por exemplo, para visão estéreo ou outros arranjos de câmera múltipla).
2. Núcleo Inversa e Transformada Enrolada
Visão Geral
[0035] Em uma implementação, do encodificador 200 / decodificador 300, a transformada inversa no lado do decodificador toma a forma de uma transformada enrolada de dois níveis. As etapas são como segue:
• Uma transformada de núcleo inversa (ICT) é aplicada a cada bloco 4x4 correspondente para DC reconstruído e coeficientes passa-baixa dispostos em um arranjo plano conhecido como plano DC.
• Uma operação pós-filtragem é opcionalmente aplicada às áreas 4x4 uniformemente acertadas em volta dos blocos no plano DC. Adicionalmente, um pós-filtro é aplicado às áreas de limite 2x4 e 4x2, e as quatro áreas de canto 2x2 são deixadas intocadas.
• O arranjo resultante contém coeficientes DC dos blocos 4x4 blocos correspondendo ao primeiro nível de transformada. Os coeficientes DC são copiados (figurativamente) em um arranjo maior, e os coeficientes passa-alta reconstruídos populados nas posições restantes.
• Uma ICT é aplicada a cada bloco 4x4.
• uma operação pós-filtro é opcionalmente aplicada às áreas 4x4 eventualmente acertadas em volta dos blocos no plano DC. Adicionalmente, um pós-filtro é aplicado às áreas de limite 2x4 e 4x2, e as quatro áreas de curva 2x2 são deixadas intocadas.
[0036] Este processo é mostrado na Figura 4.
[0037] A aplicação dos pós-filtros é governada por um elemento sintático OVERLAP_INFO no fluxo de bits comprimido 220. OVERLAP_INFO pode adquirir três valores:
Petição 870190108373, de 25/10/2019, pág. 16/43
13/31 • Se OVERLAP_INFO = 0, nenhuma pós-filtragem é desempenhada.
• Se OVERLAP_INFO = 1, somente a pós-filtragem externa é desempenhada.
• Se OVERLAP_INFO = 2, ambas as pós-filtragens interna e externas são desempenhadas
Transformada de Núcleo Inversa
[0038] A transformada de núcleo (CT) é inspirada pela convencionalmente conhecida Transformada Discreta de Cosseno 4x4 (DCT), ainda é fundamentalmente diferente. A primeira chave diferente é que a DCT é linear enquanto que a CT é não-linear. A segunda chave diferente é que devido ao fato de ser definida em números reais, a DCT não é uma operação com perda no inteiro para o espaço inteiro. O CT é definido em números inteiros e é sem perda no espaço. A terceira chave diferente é que a DCT 2D é uma operação separável. A CT é não-separável pelo projeto.
[0039] O processo de transformada inversa inteira pode ser gravada como a cascata de três operações de transformada elementares 2x2, que são:
• Transformada Hadamard 2x2: T_h • Rotação Inversa ID: InvT_odd • Rotação Inversa 2D: InvT_odd_odd
[0040] Estas transformadas são implementadas como operações não-separáveis e são primeiro descritas, seguidas pela descrição da ICT inteira.
Transformada Hadamard 2D 2x2 T h
[0041] O encodificador / decodificador implementa a transformada Hadamard 2D 2x2 T_h como mostrado na tabela de pseudocódigo. R é um fator de arredondamento que pode adquirir o valor 0 ou 1 somente. T_h é involuntária (isto é, duas aplicações de T_h em um vetor de
Petição 870190108373, de 25/10/2019, pág. 17/43
14/31 dados [abed] sucesso na recuperação de valores originais de [a b c d], R provido é não-carregado entre as aplicações). O T_h é o próprio T_h.
Figure BRPI0807465B1_D0001
Rotação Inversa 1D InvT odd
[0042] O inverso sem perda de T_odd é definido pelo pseudocódigo na seguinte tabela.
lnvT_odd (a,b,c,d) { d/ a — c;
d (b »1)’ c ((a + η » 1);
a ™ ({3*b + 4)»-3}; b +“ ((3*a + 4)» 3); c$3*d + 4)» 3); d +- ((3*e + 4) » 3);
c-=((b+ 1)» 1); d = ((a + 1)» 1)-d: b +» c;
a -- d;
Rotação Inversa 2D InvT odd odd
[0043] A rotação inversa 2D lnvT_odd_odd é definida pelo pseudocódigo na seguinte tabela.
lnvT_odd_odd (a,b,c,d) { l|ÍÍH|BÍ· cb;
a = (Í1 ~ d» 1);
o +— (t2 c » 1);
a -- ((b ' 3 + 3)» 3); b *- f(a *3 + 3) »-2);; a-= ((bx 3 + 4)»:3);
b t2; .. ί a ti:
c +~ b; . ..
d ~~ a:
. b = -b ' ::
Petição 870190108373, de 25/10/2019, pág. 18/43
15/31
Operações ICP
[0044] A correspondência entre dados 2X2 e o pseudocódigo previamente listado é mostrado na Figura 5. A codificação de cor utilizando níveis cinza para indicar os quatro pontos de dados é introduzida aqui, para facilitar a descrição de transformada na próxima seção.
[0045] O ponto de ICT 4X4 2D é construído utilizando T_h, T_odd inverso e T_odd_odd inverso. Note que o T_h inverso é o próprio T h. A ICT é composta de dois estágios, que são mostrados no pseudocódigo a seguir. Cada estágio consiste em quatro transformadas 2x2 que podem ser feitas em qualquer sequência arbitrária, ou concomitantemente, dentro do estágio.
[0046] Se o bloco de dados de entrada for [_m n 0 p\
4x4_IPCT_lstStage() e 4x4_IPCT_2ndStage() são definidos como:
4x4 IPCT (a...p) {
T_h(a, c, i, k);
ínvT. odd(b, d, j.!):
InvT oadíe, m g o);
fnvl odd oddíf h n, p) T_h(a,d, m, p);
__________________________________
T h(c, b, o, n);
[0047] A função 2x2_ICT é a mesma como T_h.
Visão geral de pós-filtragem
[0048] Quatro operadores determinam os pós-filtros utilizados na transformada enrolada inversa. Estes são:
• Pós-filtro 4x4 • Pós-filtro de 4 pontos • Pós-filtro 2x2 • Pós-filtro de 2 pontos
[0049] O pós-filtro utiliza T_h, lnvT_odd_odd, invScale e invRotate. invRotate e invScale são definidos nas tabelas abaixo, respectivamenPetição 870190108373, de 25/10/2019, pág. 19/43
16/31 te.
Figure BRPI0807465B1_D0002
invScale (a,b) {
Pós-filtro 4x4
[0050] Primariamente, o pós-filtro 4X4 é aplicado a todas as junções dos blocos (áreas que acertam eventualmente nos 4 blocos) em todos os planos de cores quando OVERLAPJNFO for 1 ou 2. Também, o filtro 4x4 é aplicado a todas as junções dos blocos no plano DC para todos os planos quando OVERLAPJNFO for 2, e somente para o plano de luma quando OVERLAPJNFO for 2 e o formato de cor for YUV 4:2:0 ou YUV 4:2:2.
[0051]
Se o bloco de dados de entrada for Lm n 0 pá, o pós-filtro
4x4, 4x4Pós-filtro (a, b, c, d, e, f, g, h, i, j, k, 1, m, n, o, p), é definido como na tabela a seguir:
Figure BRPI0807465B1_D0003
Pós-filtro de 4 pontos
Petição 870190108373, de 25/10/2019, pág. 20/43
17/31
[0052] Filtros lineares de 4 pontos são aplicados à borda acertando áreas 2X4 e 4X2 no limite da imagem. Se os dados de entrada forem [abc d], o pós-filtro de 4 pontos, 4pós-filtro (a, b, c, d) são definidos na tabela a seguir ''at® d *3'í
.................:
Pós-filtro 2X2
[0053] O pós-filtro 2X2 é aplicado em áreas de blocos de acerto no plano DC para os canais de croma de dados YUV 4:2:0 e YUV 42:2.
Se os dados de entrada forem , o pós-filtro 2x2 2x2Pós-filtro (a, b, c, d), é definido como a tabela a seguir:
ÍX___________; ______________; d η» íwwwwxíwsjwwwwwwwwwwwwwwsíw·;
....................: _j} ~ b
Pós-filtro de 2 pontos
[0054] O pós-filtro de 2 pontos é aplicado às amostras de limite 2X1 e 1X2 que acertam os blocos. O pós-filtro de 2 pontos, pós-filtro2 (a,b) é definido na tabela a seguir
Petição 870190108373, de 25/10/2019, pág. 21/43
18/31
Figure BRPI0807465B1_D0004
[0055] A sinalização da precisão requerida para desempenhar operações de transformada da transformada enrolada descrita acima pode ser desempenhada no cabeçalho de uma estrutura de imagem comprimida. Na implementação exemplar, LONG_WORD_FLAG e NO_SCALED_FLAGS são elementos sintáticos transmitidos no fluxo de bits comprimido (por exemplo, no cabeçalho de imagem) para sinalizar precisão e complexidade computacional a ser aplicada pelo decodificador.
3. Precisão e comprimento de fala
[0056] O encodificador / decodificador exemplar desempenha operações de número inteiro. Adicionalmente, o encodificador / decodificador exemplar suporta encodificação e decodificação sem perda. No entanto, a precisão de máquina primária requerida pelo encodificador / decodificador exemplar é número inteiro.
[0057] No entanto, operações de número inteiro definidas no encodificador / decodificador exemplar permitem erros de arredondamento para codificação com perda. Estes erros são pequenos pelo projeto, no entanto eles causam abandono na curva de distorção de taxa. Para a razão de desempenho de codificação aperfeiçoada pela redução de erros de arredondamento, o encodificador / decodificador exemplar define uma precisão de máquina secundária. Neste modo, a entrada é prémultiplicada por 8 (isto é, esquerda deslocada por 3 bits) e a saída final é dividida por 8 com arredondamento (isto é, direita deslocada por 3 bits). Estas operações são realizadas no anteparo do encodificador e na traseira do decodificador, e são grandemente invisíveis ao resto dos processos. Adicionalmente, os níveis de quantização são escalados do mesmo modo que um fluxo criado com a precisão de máquina primária e decodificados utilizando a segunda precisão de máquina (e vice ver
Petição 870190108373, de 25/10/2019, pág. 22/43
19/31 sa) produz uma imagem aceitável.
[0058] A precisão de máquina secundária não pode ser utilizada quando a compressão sem perda for desejada. A precisão de máquina utilizada na criação de um arquivo comprimido é explicitamente marcada no cabeçalho.
[0059] A precisão de máquina secundária é equivalente para utilização de aritmética de escala no codec, e, portanto este modo é referido como de Escala. A precisão de máquina primária é referida como de não-escala.
[0060] O encodificador / decodificador exemplar é designado para prover boa velocidade de encodificação e decodificação. Um objetivo de projeto do encodificador / decodificador exemplar é que os valores de dados em ambos os encodificador e decodificador não excedem 16 bits assinados para uma entrada de 8 bits. (No entanto, a operação intermediária dentro de um estágio de transformada pode exceder esta figura). Isto mantém verdade para ambos os modos de precisão de máquina.
[0061] De modo oposto, quando a precisão de máquina secundária for escolhida, a expansão da faixa dos valores intermediários é por 8 bits. Uma vez que a precisão de máquina primária evita uma prémultiplicação por 8, sua expansão de faixa é 8 - 3 = 5 bits.
[0062] O primeiro encodificador / decodificador exemplar utiliza dois comprimentos de palavras diferentes para valores intermediários. Estes comprimentos são 16 e 32 bits.
[0063] Segundo Exemplo de Sintaxe e Semântica de fluxo de bits [0064] O segundo exemplo de sintaxe e semântica de fluxo de bits é hierárquico e é compreendido das seguintes camadas: Imagem, Placa, Macrobloco e Bloco.
[0065] Alguns elementos do fluxo de bits selecionados do segundo exemplo de sintaxe e semântica de fluxo de bits são definidos abaixo:
Petição 870190108373, de 25/10/2019, pág. 23/43
20/31
Flag de Palavra Longa (LONG_WORD_FLAG) (1 bit)
[0066] LONG_WORD_FLAG é um elemento de sintaxe de 1 bit e especifica se números inteiros de 16 bits podem ser utilizados para computações de transformada. Em um segundo exemplo de sintaxe de fluxo de bits, se LONG_WORD_FLAG = = 0 (FALSE), os números inteiros de 16 bits e arranjos podem ser utilizados para o estágio externo das computações de transformada (operações intermediárias dentro da transformada (tal como (3*a+l)»l) são desenvolvidas com maior acurácia). Se LONG_WORD_FLAG = = TRUE, os números inteiros de 32 bits e arranjos devem ser utilizados para computações de transformada.
[0067] Note: a aritmética de 32 bits pode ser utilizada para decodificar uma imagem considerando o valor de LONG_WORD_FLAG. Este elemento de sintaxe pode ser utilizado pelo decodificador para escolher o comprimento de palavra mais eficiente para implementação.
[0068] Nenhum Flag de aritmética de escala (NO_SCALED_FLAG) (1 bit)
[0069] NO_SCALED_FLAG é um elemento de sintaxe de 1 bit que especifica se a transformada utilize escala. Se NO_SCALED_FLAG == 1, a escala não deve ser desempenhada. Se NO_SCALED_FLAG == 0, escala deve ser utilizada. Neste caso, a escala deve ser desempenhada arredondando a saída do estágio final (conversão de cor) por 3 bits.
[0070] Note: NO_SCALED_FLAG deve ser ajustado para TRUE se a codificação sem perda for desejada, mesmo se a codificação sem perda for utilizada somente para uma sub-região de uma imagem. A codificação com perda pode utilizar ambos os modos.
[0071] Note: O desempenho de distorção da taxa para codificação com perda é superior para codificação com perda quando a escala for utilizada (isto é, NO_SCALED_FLAG == FALSE), especialmente em
Petição 870190108373, de 25/10/2019, pág. 24/43
21/31
QPs baixos.
4. Sinalização e Uso de Flag de Palavra Longa
[0072] Um formato de imagem exemplar para o encodificador / decodificador representativo suportar uma ampla faixa de formatos de pixels, incluindo alta faixa dinâmica e amplos formatos de escala musical. Os tipos de dados suportados incluem número inteiro nãoassinado, flutuação de ponto fixo e flutuação de ponto flutuante. As profundidades de bits suportados incluem oito, 16, 24 e 32 bits por canal de cor. O formato de imagem exemplar permite para compressão sem perda de imagens que utilizam até 24 bits por canal de cor, e compressão com perda de imagens que utilizam até 32 bits por canal de cor.
[0073] Ao mesmo tempo, o formato de imagem exemplar foi projetado para prover imagens de alta qualidade e eficiência de compressão e permite encodificação de baixa complexidade e implementações de decodificação.
[0074] Para suportar implementação de baixa complexidade, a transformada em um formato de imagem exemplar foi projetado para minimizar a expansão na faixa dinâmica. A transformada de dois estágios aumenta a faixa dinâmica somente por cinco bits. Portanto, se a profundidade de bit de imagem for de oito bits por canal de cor, 1 bits aritméticos podem ser suficientes para desempenhar todas as operações de transformada no decodificador. Para outras profundidades de bit, aritmética de maior precisão pode ser necessária para operações de transformada.
[0075] A complexidade computacional de decodificação de um fluxo de bits específico pode ser reduzida se a precisão requerida para operações de transformada for conhecida no decodificador. Esta informação pode ser sinalizada para um decodificador utilizando um elemento de sintaxe (por exemplo, flag de 1 bit em um cabeçalho de
Petição 870190108373, de 25/10/2019, pág. 25/43
22/31 imagem). Técnicas de sinalização descritas e elementos de sintaxe podem reduzir a complexidade computacional em fluxos de bits de decodificação.
[0076] Em uma implementação exemplar, o elemento de sintaxe de 1 bit LONG_WORD_FLAG is utilizado. Por exemplo, se LONG_WORD_FLAG = = FALSE, números inteiros de 16 bits e arranjos podem ser utilizados para estágio externo das computações de transformada e se LONG_WORD_FLAG == TRUE, números inteiros de 32 bits e arranjos devem ser utilizados para computações de transformada.
[0077] Em uma implementação do encodificador / decodificador, as operações de transformada em lugar pode ser desempenhada nas palavras de largura de 16 bits, porém operações intermediárias dentro da transformada (tal como computação do produto 3*a para uma etapa de elevação dada por b += (3*a+l)»l)) são desempenhadas com alta acurácia (por exemplo, 18 bits ou maior precisão). No entanto, neste exemplo, os valores de transformada intermediária a e b por eles mesmos podem ser armazenados em números inteiros de 16 bits.
[0078] A aritmética de 32 bits pode ser utilizada para decodificar uma imagem considerando os valores do elemento LONG_WORD_FLAG. O elemento LONG_WORD_FLAG pode ser utilizado pelo encodificador / decodificador para escolher o comprimento de palavra mais eficiente. Por exemplo, um encodificador pode escolher ajustar o elemento LONG_WORD_FLAG para FALSE se ele puder verificar que as etapas de precisão de 16 bits e 32 bits produzem o mesmo valor de saída.
5. Sinalização e uso de NO SCALED FLAG
[0079] Um exemplo de formato de imagem de codificador/decodificafor representativo suporta uma ampla faixa de pixel, incluindo faixa dinâmica elevada e formatos de gama amplo ao mesmo
Petição 870190108373, de 25/10/2019, pág. 26/43
23/31 tempo, o projeto do encodificador/decodificador representativo otimiza qualidade de imagem e eficiência de compressão e permite baixa complexidade e implementações de decodificação.
[0080] Como discutido acima, o encodificador/decodificador representativo usa duas transformadas com base em bloco hierárquico, onde todas as etapas de transformada são operações de números inteiros. Os pequenos erros de arredondamento presentes nessas operações de números inteiros resultam em perda de eficiência de compressão durante compressão com perdas. Para combater este problema, uma implementação do encodificador/decodificador representativo define dois modos de precisão diferentes para operações de decodificador: o modo de escala e o modo de não escala.
[0081] No modo de precisão de escala, a imagem de entrada é pré-multiplicada por 8 (isto é, deslocada para a esquerda em 3 bits), no encodificador, e a saída final no decodificador é dividida por 8 com arredondamento (isto é, deslocada para a esquerda em 3 bits). Operação no modo de precisão de escala minimiza os erros de arredondamento, e resulta em desempenho de distorção de taxa.
[0082] No modo de precisão de não escala, não existe nenhum tal escala. Um encodificador ou decodificador operando em modo de precisão de não escala, não tem que lidar com uma pequena faixa dinâmica para coeficientes de transformada, e assim tem baixa complexidade computacional. Entretanto, existe uma pequena penalidade na eficiência de compressão para operar neste modo. Codificação sem perda (sem quantificação, insto é, estabelecendo o Parâmetro de Quantificação ou QP para 1) pode apenas usar o modo de precisão de escala para garantir reversibilidade.
[0083] O modo de precisão usado pelo encodificador para criar um arquivo comprimido é explicitamente sinalizado no cabeçalho de imagem do fluxo de bits comprimido 220 (figura 2) usando o
Petição 870190108373, de 25/10/2019, pág. 27/43
24/31
NO_SCALED_FLAG. É recomendado que o decodificador 300 use o mesmo modo de precisão para suas operações.
[0084] NO_SCALED_FLAG é um elemento sintático no cabeçalho de imagem que especifica o modo de precisão como segue:
[0085] Se NO_SCALED_FLAG == TRUE, o modo de não escala deveria ser usado para operação de decodificador.
[0086] Se NO_SCALED_FLAG == FALSE, escala deveria ser usada. Neste case, o modo de escala deveria ser usado para operação arredondando para baixo a saída do estágio final (conversão de cor) em 3 bits. O desempenho de distorção de taxa para codificação com perda é superior quando o modo de não escala é usado (isto é, NO_SCALED_FLAG == FALSE), especialmente em baixos QPs. Entretanto, a complexidade de computação é inferior quando o modo de não escala é usado devido a duas razões:
[0087] A expansão de faixa dinâmica menor no modo de não escala significa que palavras mais curtas podem ser usadas para computações de transformada, especialmente em conjunto com o LONG_WORD_FLAG. Em implementações VLSI, a expansão de faixa dinâmica reduzida significa que a lógica de porta que implementa os bits mais significantes pode ser desenergizada.
[0088] O modo de escala requer uma adição e deslocamento de bit para direita em 3 bits (implementar um arredondamento dividido por 8) no lado do decodificador. No lado do decodificador, ele requer um deslocamento de bit para a esquerda em 3 bits. Isto é levemente mais essencialmente computacional do que o modo de não escala total.
[0089] Adicionalmente, o modo de não escala permite a compressão de mais bits significantes do que o modo de escala. Por exemplo, o modo de não escala permite a compressão com perda (e descompressão) de até 27 bits significantes per exemplo, usando 32 bits aritméticos. Em contraste, o modo de escala permite o mesmo para al
Petição 870190108373, de 25/10/2019, pág. 28/43
25/31 guns 24 bits. Isto se dá devido aos três bits adicionais de faixa dinâmica introduzidos pelo processo de escala.
[0090] Os valores de dados no decodificador não excedem 16 bits sinalizado para uma entrada de 8 bits para ambos os modos de precisão. (entretanto, operação intermediária dentro de um estágio de transformada pode exceder esta figura).
[0091] Nota: NO_SCALED_FLAG é estabelecido para TRUE pelo encodificador, se a codificação com perda (QP=I) for desejada, mesmo se a codificação com perda for requerida para apenas uma sub-região de uma imagem.
[0092] O encodificador pode usar qualquer modo para compressão com perda. É recomendado que o decodificador use o modo de precisão sinalizado por NO_SCALED_MODE para suas operações. Entretanto, os níveis de quantificação são colocados em escala tal que um fluxo criado com o modo de precisão de escala e decodificado usando o modo de precisão de não escala (e vice-versa) produz uma imagem aceitável e muitos casos.
6. Aritmética de Escala para Precisão Aumentada
[0093] Em uma implementação do codificador/decodificafor representativo, as transformadas (incluindo conversão de cor) são transformadas de número inteiro e implementadas através de uma série de etapas de elevação. Nessas etapas de elevação, erros de truncatura danificam desempenho de transformada. Para casos de compressão com perda, para minimizar o dano de erros de truncatura e assim maximizar desempenho de transformada, dados de entrada para uma transformada precisam ser deslocados para a esquerda em muitos bits. Entretanto, outra característica desejada é se a imagem de entrada for de 8 bits, então a saída de transformada deveria estar dentro de 16 bits. De modo que o número de bits deslocados para a esquerda não pode ser grande. O decodificador representativo implementa uma
Petição 870190108373, de 25/10/2019, pág. 29/43
26/31 técnica de aritmética de escala para alcançar ambos os objetivos. A técnica de aritmética de escala maximiza o desempenho de transformada minimizando danos de erros de truncatura, e ainda limita a saída de cada etapa de transformada para estar dentro dos 16 bits se a imagem de entrada for de 8 bits. Isto torna possível implementação de 16 bits simples.
[0094] As transformadas utilizadas no codificador/decodificafor representativo são transformadas de número inteiro e implementadas por etapas de elevação. A maioria das etapas de transformada envolve um deslocamento para a direita, que introduz erros de truncatura. Uma transformada geralmente envolve muitas etapas de elevação, e erros de truncatura acumulados danificam o desempenho de transformada visivelmente.
[0095] Uma maneira de reduzir o dano de erros de truncatura é deslocar para a esquerda os dados de entrada antes da transformada no decodificador, e deslocar para a direita o mesmo número de bits após a transformada (combinada com quantificação) no decodificador. Como descrito acima, o codificador/decodificafor representativo tem estrutura de transformada de dois estágios: sobreposição de primeiro estágio opcional + CT de primeiro estágio + sobreposição de segundo estágio opcional + CT de segundo estágio. Experimentos mostraram que o deslocamento para a esquerda em 3 bits é necessário para minimizar os erros de truncatura. De modo que em casos com perda, antes da conversão de cor, dados de entrada podem ser deslocados para a esquerda em 3 bits, isto é, multiplicados ou colocados em escala por um fato de 8 (por exemplo, para o modo de escala descrito acima). [0096] Entretanto, conversão de cor e transformadas expendem dados. Se dados de entrada forem deslocados em 3 bits, a saída do segundo estágio 4 x 4 DCT tem uma faixa dinâmica de 17 bits, se os dados de entrada forem de 8 bits (saída de cada outra transformada
Petição 870190108373, de 25/10/2019, pág. 30/43
27/31 ainda está dentro de 16 bits) isto é indesejável uma vez que evita implementação de 16 bits, uma característica altamente desejável. Para obter isto, antes do segundo estágio 4 x 4 CT, dados de entrada são deslocados para a direita e de modo que a saída esteja também dentro de 16 bits. Uma vez que o segundo estágio 4 x 4 CT aplica-se a apenas 1/6 dos dados (os coeficientes de transformada de DC do primeiro estágio DCT), e os dados já estão colocados em escala pela primeira transformada, de modo que os danos de erros de truncatura aqui sejam mínimos.
[0097] Então, em casos com perda para imagens de 8 bits, no lado do encodificador, entrada é deslocada para a esquerda em 3 bits antes da conversão de cor, e deslocada para a direita em 1 bit antes do segundo estágio 4 x 4 CT. No lado do decodificador, a entrada é deslocada para a esquerda em 1 bit antes do primeiro estágio 4 x 4 IDCT, e deslocada para a direita em 3 bits após a conversão de cor.
7. Ambiente de Computação
[0098] As técnicas de processamento acima descritas para complexidade computacional e sinalização de precisão em um codec de mídia digital podem ser realizadas em qualquer um dentre uma variedade de sistemas de encodificação e/ou decodificação de mídia digital, incluindo entre outros exemplos, computadores (de vários fatores de forma, incluindo servidor, desktop, laptop, dispositivos de mão, etc.); registradores de mídia digital e reprodutores; dispositivos de captura de imagem e vídeo (tais como câmeras, scanners, etc.) equipamento de comunicação (tal como telefones, telefones móveis, equipamento para conferência, etc.); display, impressão ou outros dispositivos de apresentação; e etc. a complexidade computacional e técnicas sinalização de precisão em um codec de mídia digital pode ser implementado em conjuntos de circuito de hardware, em firmware que controla hardware de processamento de mídia digital, bem como em software
Petição 870190108373, de 25/10/2019, pág. 31/43
28/31 de comunicação que executa dentro de um computador ou outro ambiente de computador, tal como mostrado na figura 6.
[0099] A figura 6 ilustra um exemplo generalizado de um ambiente de computação (600) em que modalidades descritas podem ser implementadas. O ambiente de computação (600) não pretende sugerir qualquer limitação assim como o escopo de uso ou funcionalidade da invenção, como a presente invenção pode ser implementada em ambientes de finalidade geral ou de computação de finalidade especial. [00100] Com referência à figura 6, o ambiente de computação (600) inclui pelo menos uma unidade de processamento (610) e memória (620). Na figura 6, esta configuração mais básica (630) é incluída dentro de uma linha pontilhada. A unidade de processamento (610) executa instruções legíveis por computador e podem ser um processador virtual. Em um sistema de multiprocessamento, múltiplas unidades de processamento executam instruções executáveis por computador, para aumentar potência de processamento. A memória (620) pode ser memória volátil (por exemplo, registradores, cache, RAM), memória não volátil (por exemplo, ROM, EEPROM, memória flash, etc.), ou alguma combinação das duas. A memória (620) armazena software (680) que implementa a encodificação/decodificação de mídia digital descrita com complexidade computacional e técnicas de sinalização de precisão.
[00101] Um ambiente de computação pode ter características adicionais. Por exemplo, o ambiente de computação (600) inclui armazenamento (640), um ou mais dispositivos de entrada (650), um ou mais dispositivos de saída (660), e uma ou uma ou mais conexões de comunicação (670). Um mecanismo de interconexão (não mostrado) tal como um barramento, controlador, ou rede interconecta os componentes do ambiente de computação (600). Tipicamente, o software de sistema de operação (não mostrado) provê um ambiente de operação
Petição 870190108373, de 25/10/2019, pág. 32/43
29/31 para outro software executando no ambiente de computação (600), e coordena atividades dos componentes do ambiente de computação. (600).
[00102] O armazenamento (640) pode ser removível ou não removível, e inclui discos magnéticos, fitas magnéticas ou cassetes, CDROMs, CD-RWs, DVDs, ou qualquer outro meio que pode ser usado para armazenar informações e que pode ser acessado dentro do ambiente de computação (600). O armazenamento (640) armazena instruções para o software (680) implementando a encodificação / decodificação de mídia digital descrita com complexidade computacional e técnicas de sinalização de precisão.
[00103] Os dispositivos de entrada (650) podem ser um dispositivo de entrada de toque tal como teclado, mouse, pen, ou indicador, um dispositivo de entrada de voz, um dispositivo de varredura, ou outro dispositivo que provê entrada para o ambiente de comunicação (600). Para áudio, os dispositivos de entrada (650) pode ser um cartão de som ou dispositivo similar que aceita entrada de áudio em forma analógica ou digital a partir de um microfone ou arranjo de microfone, ou leitor de CD-ROM que provê amostras de áudio para o ambiente de computação. Os dispositivos de computação (660) podem ser um display, impressora, alto-falantes, gravador de CD, ou outro dispositivo que provê saída do ambiente de computação (600).
[00104] As conexões de comunicação (670) capaz de comunicação sobre um meio de comunicação para outra entidade de computação. O meio de comunicação transporta informações tais como instruções legíveis por computador, informações de áudio ou vídeo copmprimidas, ou outros dados em um sinal de dados modulado. Um sinal de dados modulado é um sinal que tem uma ou mais das características estabelecidas ou alteradas de tal maneira a encodificar informações no sinal. Para exemplo, e não limitação, mídia de comunicação inclui técnicas
Petição 870190108373, de 25/10/2019, pág. 33/43
30/31 com fio ou sem fio implementadas com uma portadora elétrica, ótica, RF, infravermelha, acústica, ou outra portadora.
[00105] A encodificação / decodificação de mídia digital descrita com técnicas de quantificação flexível neste documento pode ser descrita no contexto geral de mídia legível por computador. Mídia legível por computador é qualquer mídia disponível que pode ser acessada dentro de um ambiente de comunicação. Para exemplo, e não limitação, com o ambiente de comunicação (600), a mídia legível por computador inclui memória (620), armazenamento (640), mídia de comunicação, e combinações de qualquer um dos acima
[00106] A encodificação / decodificação de mídia digital descrita com complexidade computacional e técnicas de sinalização de precisão neste documento pode ser descrita no contexto geral de instruções executáveis por computador, tais como aquelas incluídas em módulos de programa, sendo executadas em um ambiente de computação em um processador real alvo ou virtual. Geralmente, módulos de programa incluem rotinas, programas, bibliotecas, objetos, classes, componentes, estruturas de dados, etc., que realizam tarefas particulares ou implementam tipos de dados abstratos particulares. A funcionalidade dos módulos de programa pode ser combinada ou dividida entre módulos de programa como desejado em várias modalidades. Instruções executáveis por computador para módulos de programa podem ser executadas dentro de um ambiente de computação local ou distribuído.
[00107] Para fins de apresentação, a descrição detalhada usa termos como determina, gera, ajusta, e aplica para descrever operações de computador em um ambiente de computação. Esses termos são abstrações de nível alto para operações realizadas por um computador, e não devem ser confundidos com atos realizados por um ser humano. As operações de computador reais correspondentes a esses
Petição 870190108373, de 25/10/2019, pág. 34/43
31/31 termos variam dependendo da implementação.
[00108] Em vista das muitas modalidades possíveis as quais os princípios da invenção podem ser aplicados, são reivindicados como invenção todas tais modalidades quantas puderem estar dentro do escopo e espírito das seguintes reivindicações e equivalentes das mesmas.

Claims (11)

1. Método de decodificação de mídia digital caracterizado pelo fato de que compreende as etapas de:
receber um fluxo de bits de mídia digital comprimido em um decodificador de mídia digital;
analisar um primeiro elemento sintático e um segundo elemento sintático a partir do fluxo de bits de mídia digital comprimido o primeiro elemento sintático sinaliza um grau de precisão aritmética a ser usado para cálculos de transformada durante processamento de dados de mídia digital; e o segundo elemento sintático sinaliza se uma escala deve ser usada no decodificador de mídia digital;
decodificar o fluxo de bits da mídia digital compactada, incluindo a aplicação de uma transformada sobreposta inversa em dois estágios (ILT) que inclui uma transformada inversa de primeiro estágio que regenera os coeficientes DC seguidos por uma transformada inversa de segundo estágio aplicada aos coeficientes DC e coeficientes AC decodificados a partir do fluxo de bits de mídia digital compactada e que usa a precisão e a escala aritmética sinalizada, em que a escala inclui uma divisão arredondada da saída no decodificador de mídia digital; e emitir uma imagem reconstruída.
2. Método de decodificação de mídia digital, de acordo com a reivindicação 1, caracterizado pelo fato de que o primeiro elemento sintático sinaliza para usar uma precisão aritmética elevada ou uma precisão aritmética baixa.
3. Método de decodificação de mídia digital, de acordo com a reivindicação 2, caracterizado pelo fato de que ainda compreende:
decodificar os blocos de coeficientes de transformada a partir do fluxo de bits da mídia digital compactada;
Petição 870190108373, de 25/10/2019, pág. 36/43
2/4 no caso em que o primeiro elemento sintático sinalize o uso da precisão aritmética elevada, aplicando uma transformada inversa aos coeficientes da transformada usando o processamento da precisão aritmética elevada; e no caso em que o primeiro elemento sintático sinalize o uso da precisão aritmética baixa, aplicando uma transformada inversa aos coeficientes da transformada usando o processamento da precisão aritmética baixa.
4. Método de decodificação de mídia digital, de acordo com a reivindicação 2 ou 3, caracterizado pelo fato de que a precisão aritmética elevada é o processamento de números de 32 bits, e a precisão aritmética baixa é o processamento de números de 16 bits.
5. Método de decodificação de mídia digital, de acordo com a reivindicação 2, caracterizado pelo fato de que ainda compreende:
decodificar blocos de coeficientes de transformada a partir do fluxo de bits da mídia digital compactada;
aplicar uma transformada inversa aos coeficientes de transformada usando processamento de precisão aritmética elevada, independentemente do grau de precisão aritmética sinalizada através do elemento sintático.
6. Método de codificação de mídia digital caracterizado pelo fato de que compreende:
receber dados de mídia digital em um codificador de mídia digital;
tomar uma decisão se usa a aritmética de precisão mais baixa para cálculos de transformada durante processamento de dados de mídia digital;
representar a decisão se usa a aritmética de precisão mais baixa para cálculos de transformada com um primeiro elemento sintático em um fluxo de bits codificado, em que o elemento sintático é operável para comunicar a decisão para um decodificador de mídia digital
Petição 870190108373, de 25/10/2019, pág. 37/43
3/4 e em que a aritmética precisão mais baixa é uma precisão aritmética de 16 bits;
tomar uma decisão se aplica uma escala dos dados de entrada de mídia digital antes de transformar a codificação;
representar a decisão se aplica a escala com um segundo elemento sintático no fluxo de bits codificado;
codificar os dados de mídia digital recebidos em um fluxo de bits compactado, incluindo a aplicação de uma transformada sobreposta direta de dois estágios (LT) que inclui uma transformada de primeiro estágio seguida por uma transformada de segundo estágio nos coeficientes DC a partir da transformada de primeiro estágio e que usa a precisão e escala aritmética decidida, em que a escala inclui uma pré-multiplicação dos dados de mídia digital de entrada; e gerar o fluxo de bits codificado.
7. Método de codificação de mídia digital, de acordo com a reivindicação 6, caracterizado pelo fato de que a tomada de decisão compreende:
verificar se a aritmética de precisão mais baixa para cálculos de transformada produz uma mesma saída de decodificador assim como usar uma aritmética de precisão mais alta para cálculos de transformada; e decidir se deve usar a aritmética de precisão mais baixa com base na referida verificação.
8. Método de codificação de mídia digital, de acordo com a reivindicação 6, caracterizado pelo fato de que tomar uma decisão se aplica ou não uma escala compreende decidir não aplicar a escala dos dados de mídia digital de entrada quando da codificação sem perdas dos dados de mídia digital.
9. Mídia de armazenamento legível por computador caracterizado pelo fato de que compreende o método conforme as reivindicações 1 a 8.
Petição 870190108373, de 25/10/2019, pág. 38/43
4/4
10. Dispositivo de decodificação caracterizado pelo fato de que é configurado para executar o método conforme definido em qualquer uma das reivindicações 1 a 5.
11. Dispositivo de codificação caracterizado pelo fato de que é configurado para executar o método conforme definido em qualquer uma das reivindicações 6 a 8.
BRPI0807465-8A 2007-02-21 2008-02-20 Método de decodificação de mídia digital, método de codificação de mídia digital, mídia de armazenamento legível por computador, dispositivo de decodificação e dispositivo de codificação BRPI0807465B1 (pt)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US89103107P 2007-02-21 2007-02-21
US60/891.031 2007-02-21
US11/772,076 US8942289B2 (en) 2007-02-21 2007-06-29 Computational complexity and precision control in transform-based digital media codec
US11/772.076 2007-06-29
PCT/US2008/054473 WO2008103766A2 (en) 2007-02-21 2008-02-20 Computational complexity and precision control in transform-based digital media codec

Publications (3)

Publication Number Publication Date
BRPI0807465A2 BRPI0807465A2 (pt) 2014-06-03
BRPI0807465A8 BRPI0807465A8 (pt) 2017-01-17
BRPI0807465B1 true BRPI0807465B1 (pt) 2020-05-26

Family

ID=41556839

Family Applications (1)

Application Number Title Priority Date Filing Date
BRPI0807465-8A BRPI0807465B1 (pt) 2007-02-21 2008-02-20 Método de decodificação de mídia digital, método de codificação de mídia digital, mídia de armazenamento legível por computador, dispositivo de decodificação e dispositivo de codificação

Country Status (11)

Country Link
US (1) US8942289B2 (pt)
EP (1) EP2123045B1 (pt)
JP (2) JP5457199B2 (pt)
KR (2) KR101550166B1 (pt)
CN (1) CN101617539B (pt)
BR (1) BRPI0807465B1 (pt)
HK (1) HK1140341A1 (pt)
IL (1) IL199994A (pt)
RU (1) RU2518417C2 (pt)
TW (1) TWI471013B (pt)
WO (1) WO2008103766A2 (pt)

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6882685B2 (en) * 2001-09-18 2005-04-19 Microsoft Corporation Block transform and quantization for image and video coding
US7949054B2 (en) * 2006-06-01 2011-05-24 Microsoft Corporation Flexible data organization for images
US8942289B2 (en) * 2007-02-21 2015-01-27 Microsoft Corporation Computational complexity and precision control in transform-based digital media codec
US8275209B2 (en) * 2008-10-10 2012-09-25 Microsoft Corporation Reduced DC gain mismatch and DC leakage in overlap transform processing
JP5340091B2 (ja) 2008-12-19 2013-11-13 キヤノン株式会社 画像符号化装置及びその制御方法
US8676849B2 (en) * 2009-03-12 2014-03-18 Microsoft Corporation Storing lossless transforms of data
KR20110135786A (ko) * 2010-06-11 2011-12-19 삼성전자주식회사 깊이 전이 데이터를 이용한 3d 비디오 인코딩/디코딩 장치 및 방법
EP2679012B1 (en) 2011-02-21 2015-08-26 Dolby Laboratories Licensing Corporation Floating point video coding
US8781238B2 (en) 2011-09-08 2014-07-15 Dolby Laboratories Licensing Corporation Efficient decoding and post-processing of high dynamic range images
US11184623B2 (en) * 2011-09-26 2021-11-23 Texas Instruments Incorporated Method and system for lossless coding mode in video coding
KR20130040132A (ko) * 2011-10-13 2013-04-23 한국전자통신연구원 이종 ip 네트워크를 통한 미디어 코덱에 독립적인 미디어 데이터 전송 방법
JP6157114B2 (ja) * 2012-12-28 2017-07-05 キヤノン株式会社 画像符号化装置、画像符号化方法及びプログラム、画像復号装置、画像復号方法及びプログラム
US8817179B2 (en) * 2013-01-08 2014-08-26 Microsoft Corporation Chroma frame conversion for the video codec
GB2521349A (en) * 2013-12-05 2015-06-24 Sony Corp Data encoding and decoding
JP6220722B2 (ja) * 2014-04-17 2017-10-25 アンリツ株式会社 ミリ波帯用電波ハーフミラーおよびその透過係数平坦化方法
KR20170007333A (ko) 2014-07-11 2017-01-18 엘지전자 주식회사 방송 신호 송수신 방법 및 장치
WO2016006970A1 (ko) * 2014-07-11 2016-01-14 엘지전자 주식회사 방송 신호 송수신 방법 및 장치
US10368144B2 (en) 2014-07-29 2019-07-30 Lg Electronics Inc. Method and device for transmitting and receiving broadcast signal
JP6324590B2 (ja) * 2017-05-25 2018-05-16 キヤノン株式会社 画像符号化装置、画像符号化方法及びプログラム、画像復号装置、画像復号方法及びプログラム
JP6915483B2 (ja) * 2017-09-27 2021-08-04 富士フイルムビジネスイノベーション株式会社 画像処理装置、画像処理システムおよびプログラム
EP3471271A1 (en) * 2017-10-16 2019-04-17 Acoustical Beauty Improved convolutions of digital signals using a bit requirement optimization of a target digital signal
US11019338B2 (en) 2018-02-01 2021-05-25 Mediatek Inc. Methods and apparatuses of video encoding or decoding with adaptive quantization of video data
JP2018142969A (ja) * 2018-04-11 2018-09-13 キヤノン株式会社 画像符号化装置、画像符号化方法及びプログラム、画像復号装置、画像復号方法及びプログラム

Family Cites Families (112)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63219066A (ja) 1987-03-06 1988-09-12 Matsushita Electric Ind Co Ltd 直交変換装置
US4922537A (en) * 1987-06-02 1990-05-01 Frederiksen & Shu Laboratories, Inc. Method and apparatus employing audio frequency offset extraction and floating-point conversion for digitally encoding and decoding high-fidelity audio signals
US5357594A (en) * 1989-01-27 1994-10-18 Dolby Laboratories Licensing Corporation Encoding and decoding using specially designed pairs of analysis and synthesis windows
US5379351A (en) * 1992-02-19 1995-01-03 Integrated Information Technology, Inc. Video compression/decompression processing and processors
US5319724A (en) 1990-04-19 1994-06-07 Ricoh Corporation Apparatus and method for compressing still images
JP2945487B2 (ja) * 1990-12-26 1999-09-06 株式会社日立製作所 行列乗算器
JPH04282988A (ja) 1991-03-12 1992-10-08 Sony Corp データ変換装置及び方法
US5168375A (en) * 1991-09-18 1992-12-01 Polaroid Corporation Image reconstruction by use of discrete cosine and related transforms
KR0150955B1 (ko) * 1992-05-27 1998-10-15 강진구 비트고정을 위한 영상압축방법과 신장방법 및 그 장치
US5394349A (en) * 1992-07-10 1995-02-28 Xing Technology Corporation Fast inverse discrete transform using subwords for decompression of information
JPH0645948A (ja) 1992-07-27 1994-02-18 Victor Co Of Japan Ltd 直交変換装置及び逆直交変換装置
JPH0645949A (ja) 1992-07-27 1994-02-18 Victor Co Of Japan Ltd 直交変換装置及び逆直交変換装置
JPH0654307A (ja) 1992-07-29 1994-02-25 Casio Comput Co Ltd データ圧縮装置
JPH06105296A (ja) 1992-09-18 1994-04-15 Sony Corp 可変長符号化および復号化方法
JP3348310B2 (ja) 1992-09-28 2002-11-20 ソニー株式会社 動画像符号化方法および動画像符号化装置
JP3069455B2 (ja) * 1992-12-22 2000-07-24 富士写真フイルム株式会社 画像データ圧縮伸張装置における量子化・逆量子化回路
US5995539A (en) * 1993-03-17 1999-11-30 Miller; William J. Method and apparatus for signal transmission and reception
JP3697717B2 (ja) * 1993-09-24 2005-09-21 ソニー株式会社 2次元離散コサイン変換装置および2次元逆離散コサイン変換装置
US5587708A (en) * 1994-01-19 1996-12-24 Industrial Technology Research Institute Division technique unified quantizer-dequantizer
JP3046224B2 (ja) * 1994-07-26 2000-05-29 三星電子株式会社 固定ビット率の符号化方法および装置とこれを利用した高速探索のためのトラッキング方法
EP0714212A3 (en) * 1994-11-21 1999-03-31 SICAN, GESELLSCHAFT FÜR SILIZIUM-ANWENDUNGEN UND CAD/CAT NIEDERSACHSEN mbH Video decoder using concurrent processing and resource sharing
US5864637A (en) * 1995-04-18 1999-01-26 Advanced Micro Devices, Inc. Method and apparatus for improved video decompression by selective reduction of spatial resolution
US6002801A (en) * 1995-04-18 1999-12-14 Advanced Micro Devices, Inc. Method and apparatus for improved video decompression by selection of IDCT method based on image characteristics
JP2778622B2 (ja) * 1995-06-06 1998-07-23 日本電気株式会社 2次元dct回路
JP2914226B2 (ja) 1995-06-16 1999-06-28 日本電気株式会社 可逆変換を可能にするディジタル信号の変換符号化方式
JP3274593B2 (ja) * 1995-09-27 2002-04-15 日本電気株式会社 可逆変換可能な変換装置及び逆変換装置
US6026182A (en) * 1995-10-05 2000-02-15 Microsoft Corporation Feature segmentation
EP0878097B1 (en) * 1996-01-08 2003-03-26 International Business Machines Corporation File server for multimedia file distribution
US6957350B1 (en) * 1996-01-30 2005-10-18 Dolby Laboratories Licensing Corporation Encrypted and watermarked temporal and resolution layering in advanced television
JP3168922B2 (ja) * 1996-08-27 2001-05-21 日本ビクター株式会社 デジタル画像情報の記録再生装置
JPH1091614A (ja) 1996-09-13 1998-04-10 Hitachi Ltd Idctの整数化法
JPH10107644A (ja) * 1996-09-26 1998-04-24 Sony Corp 量子化装置および方法、並びに、符号化装置および方法
SG54383A1 (en) * 1996-10-31 1998-11-16 Sgs Thomson Microelectronics A Method and apparatus for decoding multi-channel audio data
US5883823A (en) 1997-01-15 1999-03-16 Sun Microsystems, Inc. System and method of a fast inverse discrete cosine transform and video compression/decompression systems employing the same
US5974184A (en) * 1997-03-07 1999-10-26 General Instrument Corporation Intra-macroblock DC and AC coefficient prediction for interlaced digital video
US6351570B1 (en) * 1997-04-01 2002-02-26 Matsushita Electric Industrial Co., Ltd. Image coding and decoding apparatus, method of image coding and decoding, and recording medium for recording program for image coding and decoding
US6058215A (en) * 1997-04-30 2000-05-02 Ricoh Company, Ltd. Reversible DCT for lossless-lossy compression
US6134270A (en) * 1997-06-13 2000-10-17 Sun Microsystems, Inc. Scaled forward and inverse discrete cosine transform and video compression/decompression systems employing the same
US6057855A (en) * 1997-07-02 2000-05-02 Hewlett-Packard Company Method and apparatus for providing polygon pixel sub-sample information using incremental means
JPH11122624A (ja) * 1997-10-16 1999-04-30 Matsushita Electric Ind Co Ltd ビデオデコーダ処理量を低減する方法および装置
US6006179A (en) * 1997-10-28 1999-12-21 America Online, Inc. Audio codec using adaptive sparse vector quantization with subband vector classification
US6137916A (en) * 1997-11-17 2000-10-24 Sony Electronics, Inc. Method and system for improved digital video data processing using 8-point discrete cosine transforms
WO1999029112A1 (en) * 1997-12-01 1999-06-10 Matsushita Electric Industrial Co., Ltd. Image processor, image data processor and variable length encoder/decoder
EP1038403B1 (de) * 1997-12-19 2005-10-12 Infineon Technologies AG Vorrichtung zur multiplikation mit konstanten faktoren und deren verwendung zur videokompression (mpeg)
RU2201654C2 (ru) 1997-12-23 2003-03-27 Томсон Лайсенсинг С.А. Способ низкошумового кодирования и декодирования
JP3953183B2 (ja) 1998-03-27 2007-08-08 パナソニック コミュニケーションズ株式会社 画像通信方法および画像通信装置
US6029126A (en) * 1998-06-30 2000-02-22 Microsoft Corporation Scalable audio coder and decoder
US6115689A (en) * 1998-05-27 2000-09-05 Microsoft Corporation Scalable audio coder and decoder
US6073153A (en) * 1998-06-03 2000-06-06 Microsoft Corporation Fast system and method for computing modulated lapped transforms
US6154762A (en) * 1998-06-03 2000-11-28 Microsoft Corporation Fast system and method for computing modulated lapped transforms
US6301304B1 (en) * 1998-06-17 2001-10-09 Lsi Logic Corporation Architecture and method for inverse quantization of discrete cosine transform coefficients in MPEG decoders
GB9819648D0 (en) * 1998-09-10 1998-11-04 Nds Ltd Determining visually noticeable differences between two images
US6353808B1 (en) * 1998-10-22 2002-03-05 Sony Corporation Apparatus and method for encoding a signal as well as apparatus and method for decoding a signal
US7117053B1 (en) * 1998-10-26 2006-10-03 Stmicroelectronics Asia Pacific Pte. Ltd. Multi-precision technique for digital audio encoder
US7194138B1 (en) * 1998-11-04 2007-03-20 International Business Machines Corporation Reduced-error processing of transformed digital data
US6421464B1 (en) * 1998-12-16 2002-07-16 Fastvdo Llc Fast lapped image transforms using lifting steps
US6363117B1 (en) * 1998-12-31 2002-03-26 Sony Corporation Video compression using fast block motion estimation
US6473534B1 (en) * 1999-01-06 2002-10-29 Hewlett-Packard Company Multiplier-free implementation of DCT used in image and video processing and compression
US6487574B1 (en) * 1999-02-26 2002-11-26 Microsoft Corp. System and method for producing modulated complex lapped transforms
US6496795B1 (en) * 1999-05-05 2002-12-17 Microsoft Corporation Modulated complex lapped transform for integrated signal enhancement and coding
US6370502B1 (en) * 1999-05-27 2002-04-09 America Online, Inc. Method and system for reduction of quantization-induced block-discontinuities and general purpose audio codec
US6574651B1 (en) * 1999-10-01 2003-06-03 Hitachi, Ltd. Method and apparatus for arithmetic operation on vectored data
US6507614B1 (en) * 1999-10-19 2003-01-14 Sony Corporation Efficient de-quantization in a digital video decoding process using a dynamic quantization matrix for parallel computations
US7028063B1 (en) * 1999-10-26 2006-04-11 Velocity Communication, Inc. Method and apparatus for a DFT/IDFT engine supporting multiple X-DSL protocols
WO2001040985A2 (en) 1999-12-06 2001-06-07 Hrl Laboratories, Llc Method and apparatus for calculating wavelet transform using variable precision
JP2003520513A (ja) * 2000-01-12 2003-07-02 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ 画像データの圧縮
JP3593944B2 (ja) * 2000-03-08 2004-11-24 日本電気株式会社 画像データ処理装置及びそれに用いる動き補償処理方法
JP4560694B2 (ja) 2000-04-05 2010-10-13 ソニー株式会社 符号化装置及びその方法
US6606725B1 (en) * 2000-04-25 2003-08-12 Mitsubishi Electric Research Laboratories, Inc. MAP decoding for turbo codes by parallel matrix processing
SE522261C2 (sv) * 2000-05-10 2004-01-27 Global Ip Sound Ab Kodning och avkodning av en digital signal
FR2818053B1 (fr) * 2000-12-07 2003-01-10 Thomson Multimedia Sa Procede et dispositif de codage pour l'affichage d'un zoom d'une image codee mpeg2
US8374237B2 (en) * 2001-03-02 2013-02-12 Dolby Laboratories Licensing Corporation High precision encoding and decoding of video images
JP4063508B2 (ja) * 2001-07-04 2008-03-19 日本電気株式会社 ビットレート変換装置およびビットレート変換方法
US20030112873A1 (en) 2001-07-11 2003-06-19 Demos Gary A. Motion estimation for video compression systems
US7123655B2 (en) * 2001-08-09 2006-10-17 Sharp Laboratories Of America, Inc. Method for reduced bit-depth quantization
US7185037B2 (en) * 2001-08-23 2007-02-27 Texas Instruments Incorporated Video block transform
KR100433709B1 (ko) 2001-08-31 2004-05-31 (주)씨앤에스 테크놀로지 행렬 변화를 통한 분산산술처리 방식의 이산여현변환 방법
US6882685B2 (en) 2001-09-18 2005-04-19 Microsoft Corporation Block transform and quantization for image and video coding
US7295609B2 (en) * 2001-11-30 2007-11-13 Sony Corporation Method and apparatus for coding image information, method and apparatus for decoding image information, method and apparatus for coding and decoding image information, and system of coding and transmitting image information
JP4610195B2 (ja) * 2001-12-17 2011-01-12 マイクロソフト コーポレーション スキップマクロブロックコード化
KR100924850B1 (ko) * 2002-01-24 2009-11-02 가부시키가이샤 히타치세이사쿠쇼 동화상 신호의 부호화 방법 및 복호화 방법
US7379498B2 (en) * 2002-03-11 2008-05-27 Broadcom Corporation Reconstructing a compressed still image by transformation to a compressed moving picture image
CN1225904C (zh) 2002-04-12 2005-11-02 精工爱普生株式会社 在压缩域视频处理中降低存储器要求和实施有效的逆运动补偿的方法和设备
US7242713B2 (en) 2002-05-02 2007-07-10 Microsoft Corporation 2-D transforms for image and video coding
US6944224B2 (en) * 2002-08-14 2005-09-13 Intervideo, Inc. Systems and methods for selecting a macroblock mode in a video encoder
US7197525B2 (en) * 2002-11-26 2007-03-27 Analog Devices, Inc. Method and system for fixed point fast fourier transform with improved SNR
US7075530B2 (en) * 2003-02-27 2006-07-11 International Business Machines Corporation Fast lighting processors
US7330866B2 (en) * 2003-07-01 2008-02-12 Nvidia Corporation System for frequency-domain scaling for discrete cosine transform
JP4617644B2 (ja) * 2003-07-18 2011-01-26 ソニー株式会社 符号化装置及び方法
US7609763B2 (en) * 2003-07-18 2009-10-27 Microsoft Corporation Advanced bi-directional predictive coding of video frames
US7502415B2 (en) * 2003-07-18 2009-03-10 Microsoft Corporation Range reduction
US8218624B2 (en) * 2003-07-18 2012-07-10 Microsoft Corporation Fractional quantization step sizes for high bit rates
US7499495B2 (en) * 2003-07-18 2009-03-03 Microsoft Corporation Extended range motion vectors
US7688895B2 (en) * 2003-07-22 2010-03-30 Lsi Corporation Method and/or circuit for binary arithmetic decoding decisions before termination
US20050036548A1 (en) * 2003-08-12 2005-02-17 Yong He Method and apparatus for selection of bit budget adjustment in dual pass encoding
US8014450B2 (en) * 2003-09-07 2011-09-06 Microsoft Corporation Flexible range reduction
KR100965881B1 (ko) 2003-10-10 2010-06-24 삼성전자주식회사 비디오 데이터 인코딩 시스템 및 디코딩 시스템
CN101699866B (zh) 2004-01-30 2016-08-03 松下电器(美国)知识产权公司 运动图片编码方法和运动图片解码方法
US20050213835A1 (en) * 2004-03-18 2005-09-29 Huazhong University Of Science & Technology And Samsung Electronics Co., Ltd. Integer transform matrix selection method in video coding and related integer transform method
US20050259729A1 (en) 2004-05-21 2005-11-24 Shijun Sun Video coding with quality scalability
JP4241517B2 (ja) 2004-06-15 2009-03-18 キヤノン株式会社 画像符号化装置及び画像復号装置
JP4074868B2 (ja) * 2004-12-22 2008-04-16 株式会社東芝 画像符号化制御方法及びその装置
JP2008536451A (ja) 2005-04-14 2008-09-04 トムソン ライセンシング 空間スケーラブルビデオ符号化及び復号化向けスライス適応型動きベクトル符号化のための方法及び装置
KR101037855B1 (ko) * 2005-07-22 2011-05-31 미쓰비시덴키 가부시키가이샤 화상 부호화 장치, 화상 복호 장치, 화상 부호화 방법 및 화상 복호 방법
CN100539437C (zh) * 2005-07-29 2009-09-09 上海杰得微电子有限公司 一种音频编解码器的实现方法
US8548265B2 (en) * 2006-01-05 2013-10-01 Fastvdo, Llc Fast multiplierless integer invertible transforms
US20070271321A1 (en) * 2006-01-11 2007-11-22 Qualcomm, Inc. Transforms with reduce complexity and/or improve precision by means of common factors
US8942289B2 (en) * 2007-02-21 2015-01-27 Microsoft Corporation Computational complexity and precision control in transform-based digital media codec
MX2009010182A (es) * 2007-03-23 2009-10-12 Thomson Licensing Modificar una corriente de bits codificada.
KR101518999B1 (ko) * 2007-06-14 2015-05-12 톰슨 라이센싱 코딩된 비트스트림의 수정
US20120014431A1 (en) * 2010-07-14 2012-01-19 Jie Zhao Methods and Systems for Parallel Video Encoding and Parallel Video Decoding
US9313514B2 (en) * 2010-10-01 2016-04-12 Sharp Kabushiki Kaisha Methods and systems for entropy coder initialization

Also Published As

Publication number Publication date
BRPI0807465A2 (pt) 2014-06-03
US8942289B2 (en) 2015-01-27
IL199994A (en) 2015-11-30
TWI471013B (zh) 2015-01-21
US20080198935A1 (en) 2008-08-21
IL199994A0 (en) 2010-04-15
BRPI0807465A8 (pt) 2017-01-17
TW200843515A (en) 2008-11-01
KR101507183B1 (ko) 2015-03-30
HK1140341A1 (en) 2010-10-08
RU2518417C2 (ru) 2014-06-10
CN101617539B (zh) 2013-02-13
RU2009131599A (ru) 2011-02-27
EP2123045B1 (en) 2018-10-17
EP2123045A4 (en) 2013-03-13
JP2010519858A (ja) 2010-06-03
KR101550166B1 (ko) 2015-09-03
JP5457199B2 (ja) 2014-04-02
EP2123045A2 (en) 2009-11-25
KR20150003400A (ko) 2015-01-08
WO2008103766A2 (en) 2008-08-28
KR20090115726A (ko) 2009-11-05
JP2014078952A (ja) 2014-05-01
WO2008103766A3 (en) 2008-11-27
CN101617539A (zh) 2009-12-30

Similar Documents

Publication Publication Date Title
BRPI0807465B1 (pt) Método de decodificação de mídia digital, método de codificação de mídia digital, mídia de armazenamento legível por computador, dispositivo de decodificação e dispositivo de codificação
US11863749B2 (en) Flexible quantization
KR101036731B1 (ko) 손실 및 무손실 2차원 데이터 압축을 위한 가역 변환
BRPI0807189B1 (pt) Método, meio de armazenamento e sistema de processamento de mídia digital
BRPI0614766A2 (pt) predição de coeficientes de transformada para compressão de imagem

Legal Events

Date Code Title Description
B25A Requested transfer of rights approved

Owner name: MICROSOFT TECHNOLOGY LICENSING, LLC (US)

B15K Others concerning applications: alteration of classification

Ipc: H04N 21/6547 (2011.01), H04N 19/122 (2014.01), H04

B06F Objections, documents and/or translations needed after an examination request according [chapter 6.6 patent gazette]
B06U Preliminary requirement: requests with searches performed by other patent offices: procedure suspended [chapter 6.21 patent gazette]
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: 10 (DEZ) ANOS CONTADOS A PARTIR DE 26/05/2020, OBSERVADAS AS CONDICOES LEGAIS.