BRPI0807465A2 - Complexidade computacional e controle de precisão em codec de mídia digital baseada em transformada - Google Patents

Complexidade computacional e controle de precisão em codec de mídia digital baseada em transformada Download PDF

Info

Publication number
BRPI0807465A2
BRPI0807465A2 BRPI0807465-8A BRPI0807465A BRPI0807465A2 BR PI0807465 A2 BRPI0807465 A2 BR PI0807465A2 BR PI0807465 A BRPI0807465 A BR PI0807465A BR PI0807465 A2 BRPI0807465 A2 BR PI0807465A2
Authority
BR
Brazil
Prior art keywords
digital media
transform
precision
arithmetic
decoder
Prior art date
Application number
BRPI0807465-8A
Other languages
English (en)
Inventor
Sridhar Srinivasan
Chengjie Tu
Shankar Regunathan
Original Assignee
Microsoft Corp
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 Corp filed Critical Microsoft Corp
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

Description

“COMPLEXIDADE COMPUTACIONAL E CONTROLE DE PRECISÃO EM CODEC DE MÍDIA DIGITAL BASEADA EM TRANSFORMADA”
FUNDAMENTO
Codificação baseada em transformada de bloco
Codificação de transformada é uma técnica de compressão utilizada em muitos sis- temas de compressão de mídia digital (por exemplo, áudio, imagem e vídeo). Imagem e ví- deo digitais não-comprimidos 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 dis- posto 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 sis- temas de imagem e vídeo podem utilizar várias cores diferentes, resoluções de tempo e es- paço de amostragem. De modo similar, o áudio digital é tipicamente representado como flu- xo 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.
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 áu- dio, 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 transformada simi- lar), 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 degra- daçã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.
Mais especificamente, um sistema encodificador / decodificador baseado em trans- formada 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 (X1, ..., 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 fre- quê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 da- dos comprimido. Na decodificação, os coeficientes de transformada transformam inversa- mente 170 a 171 para quase reconstruir a amostra espacial / cor original do sinal de imagem / vídeo (blocos reconstruídos X1, ..., Xn).
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 trans- formada. Quando os dados de entrada forem arbitrariamente longos, ele é segmentado em vetores de tamanho Nea transformada de bloco é aplicada a cada segmento. Para a finali- dade 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).
Para compreensão, os coeficientes de transformada (componentes de vetor y) po- dem ser seletivamente quantizados (isto é, reduzidos em resolução, tal como abandonando bits menos significantes dos valores de coeficiente ou de outro modo valores de mapeamen- to 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.
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 M1 (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 in- versa quase reconstrói a mídia digital de domínio espacial ou de domínio de frequência.
Em muitas aplicações de codificação baseadas na transformada de blocos, a trans- formada é revertivelmente desejável para suportar ambas as compressões com perda ou sem perda dependendo do fator de quantização. Sem quantização (geralmente representa- do 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 reversibilidade nestas aplicações restringe a escolha de transformadas pela qual o codec pode ser designado.
Muitos sistemas de compressão de vídeo e imagem, tais como Mídia MPEG e Win- dows, 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
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 re- sultam na seleção daquele valor de saída específico. Uma variedade de técnicas de quanti- zaçã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.
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.
Sumário
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ão-escala, 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.
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.
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 A Figura 1 is a diagrama em blocos de um codec baseado na transformada de blo- co convencional na técnica anterior.
A Figura 2 é um diagrama em fluxo de um encodificador representativo incorporan- do a codificação padrão de bloco.
A Figura 3 é um diagrama em fluxo de um decodificador representativo incorporan- do a codificação padrão em bloco.
A Figura 4 é um diagrama da transformada enrolada inversa incluindo uma trans- formada de núcleo e operação de pós-filtro (sobreposição) em uma implementação do en- codificador / decodificar representativo das Figuras 2 e 3.
A Figura 5 é um diagrama de identificação dos pontos de dados de entrada para as operações de transformada.
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
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 da- dos para reprodução ou outro processamento. Para fim de ilustração, este sistema de com- pressã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.
1. Encodificador / Decodificador
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 com- pressã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 represen- tativo podem ser utilizados para a compressão de dados 2D. Por exemplo, alguns encodifi- cadores / decodificadores podem também incluir conversão de cor, formatos de cor, codifi- cações escalável, codificação sem perda, modos de macroblocos, etc. O sistema de com- pressã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.
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 co- mo entrada para o encodificador. Por exemplo, a entrada de dados 2D pode ser uma ima- gem, um quadro de uma seqüê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 (geralmen- 10 te 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 16x
16 pixels em tamanho neste encodificador representativo. Por sua vez, os macroblocos são agrupados em estruturas regulares chamadas placas. As placas também formam um padrão 15 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 en- codificador 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 20 outros tamanhos e estruturas.
Um operador “de sobreposição direta" 240 é aplicado em cada borda entre os blo- cos, 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 des- crita por Srinivasan, Pedido de Patente U.S. No. 11/015,707, intitulada, "Reversible Trans- form 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 Operatorfor 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-/Post-Filtering 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 transforma- da AC são quantizados 270, codificados de entropia 280 e empacotados 290.
O decodificador desempenha o processo reverse. No lado 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 coefici- entes 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 DC1 e os coeficientes DC 342 decodifica- dos 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.
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 en- volve a aplicação de uma transformada enrolada direta (LT) discutida abaixo, que é imple- mentada 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.
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 trans- formada reversível, o par LT / ILT pode ser utilizado para compressão de imagem sem perda.
Os dados de entrada 210 comprimidos pelo encodificador ilustrado 200 / decodifi- cador 300 podem ser imagens de vários formatos de cores (por exemplo, formato de ima- gem de cor RGB/YUV4:4:4, YUV4:2:2 ou YUV4:2:0). Tipicamente, imagem de entrada sem- pre possui um componente de luminância (Y).
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 UeV possuem metade da largura e comprimento do componente y.
Como discutido acima, o encodificador 200 emplaca a imagem de entrada ou ima- gem 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 UeV dependendo do formato de cor). Cada plano de cor de macrobloco é emplacado em regiões ou blocos de 4X4 pixels. Por conse- guinte, 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 blo- cos 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 blo- cos 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.
Do mesmo modo, após a transformada, um macrobloco neste encodificador repre- sentativo 200 / decodificador 300 possui três sub-bandas de frequência: uma sub-banda DC (macrobloco DC), uma sub-banda passa-baixa (macrobloco passa-baixa), e a sub-banda passa-alta (macrobloco passa-alta). No sistema representativo, as sub-bandas passa-baixa e/ou passa-alta no fluxo de bits - estas sub-bandas podem ser inteiramente abandonadas.
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 junta- 15 mente, 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 DC1 um pacote de placa passa-baixa, e um pacote de placa passa-alta. Além disso, pode haver outras camadas.
Desse modo, para o sistema representativo, uma imagem é organizada nas seguin-
tes “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ânciaJ ... (por exemplo, como Y I U I V).
As linhas acima significam uma hierarquia, enquanto que as barras verticais signifi- cam um particionamento.
Apesar de o sistema representativo organizar os dados de mídia digital comprimi- dos em dimensões de espaço, de frequência e de canal, a aproximação de quantização fle- 30 xível descrita aqui pode ser aplicada em sistemas alternativos de encodificador / decodifica- dor 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 exem- plo, YIQ, RGB, etc.), canais de imagem adicionais (por exemplo, para visão estéreo ou ou- 35 tros arranjos de câmera múltipla).
2. Núcleo Inversa e Transformada Enrolada
Visão Geral 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 corres- pondente 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 uniformemen- te 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.
Este processo é mostrado na Figura 4.
A aplicação dos pós-filtros é governada por um elemento sintático OVERLAPJNFO no fluxo de bits comprimido 220. OVERLAPJNFO pode adquirir três valores:
· Se OVERLAPJNFO = 0, nenhuma pós-filtragem é desempenhada.
• Se OVERLAPJNFO = 1, somente a pós-filtragem externa é desempenhada.
• Se OVERLAPJNFO = 2, ambas as pós-filtragens intema e externas são desempenhadas
Transformada de Núcleo Inversa
A transformada de núcleo (CT) é inspirada pela convencionalmente conhecida 25 Transformada Discreta de Cosseno 4x4 (DCT), ainda é fundamentalmente diferente. A pri- meira 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 sepa- 30 rável. A CT é não-separável pelo projeto.
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: lnvT_odd
· Rotação Inversa 2D: lnvT_odd_odd
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
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 ad- quirir o valor 0 ou 1 somente. T_h é involuntária (isto é, duas aplicações de T_h em um vetor de dados [a b e d] 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.
T h (a,b,c,d, R) {
tí * ({a - S + R) » 1).
d *11 -Q{ a
t) wc
J_
Rotação Inversa 1D lnvT_odd
O inverso sem perda de T_odd é definido pelo pseudo-código na seguinte tabela.
InvT odd (a,b,c,d) {
b+= d.
I a-».cs
d-= (b »1), c+={<a + 1)»1);
a — ((3*b + 4)» 3), b +«((3*a + 4)» 3), c-=«3*d + 4)» 3), d += <(3*c + 4)» 3),
c-= φ + 1)» 1)
d * f(a +1}» 1)~d, b += c, a — d;
1_;
Rotação Inversa 2D lnvT_odd_odd A rotação inversa 2D lnvT_odd_odd é definida pelo pseudo-código na seguinte tabela.
InvT odd odd (a,b,c,d) {
mt t1, t2; d+= a; c —* b;
a (ti — d 1 )í b+=(t2 = c»1);
a -= ((b * 3 + 3)» 3); b += {<a * 3 + 3)» 2); a — yb* 3 * 41» 3)
b~=t2; a += ti; c+= b; d-= a;
í......... ' . ' . .... '.....‘ Operações ICP
A correspondência entre dados 2X2 e o pseudocódigo previamente listado é mos- trado 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.
O ponto de ICT 4X4 2D é construído utilizando T_h, T_odd inverso e T_odd_odd inver- so. Note que o T_h inverso é o próprio T h. AICT é composta de dois estágios, que são mostra- dos no pseudocódigo a seguir. Cada estágio consiste em quatro transformadas 2x2 que podem ser feitas em qualquer seqüência arbitrária, ou concomitantemente, dentro do estágio.
10
Se o bloco de dados de entrada for 4x4_IPCT_2ndStage() são definidos como:
a b C d e f g h i J k l m n o P. 4x4_l PCT_lstStage() e
T_h(a, c. i. k). JnvT_odd(b,d.j.i);_ ■ivT_oao(e rr*. g. o) lnvT_odd_odd(f, h. n, p), T_h(a, d, m, p),
...JJí&lSJi..........
TJHc1 b, o, n),
T h{i, t e h),
}_
A função 2x2JCT é a mesma como T_h.
Visão geral de pós-filtragem
Quatro operadores determinam os pós-filtros utilizados na transformada enrolada inversa. Estes são:
^Pos-AItro 4x4
•Pós-filtro de 4 pontos •Pós-filtro 2x2 •Pós-filtro de 2 pontos
O pós-filtro utiliza T_h, lnvT_odd_odd, invScale e invRotate. invRotate e invScale são definidos nas tabelas abaixo, respectivamente.
invRotate ía,b) {
3 {(b * 3 + » 4), b *■* lía * 3 * 4)» 3)
J__
invScale (a,b
m
ss
a-»jjb* 1)
3 *8) >!>4)· I
i Pós-filtro 4x4
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 Iuma quando OVERLAPJNFO for 2 e o formato de cor for YUV 4:2:0 ou YUV 4:2:2.
a b c d
Se o bloco de dados de entrada for
e f g h i j k l m η o 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:
T_K ü m & fy TJi Jb r* & OwClii T hfe h t· HJt
IJiSΛΐ*Ί ,
mvftdtçuL fP trtj invRoMi! & ij «wftotwpp· ot>, m/fl itMfcJS <·) _
ο Λ
m Sctiie (·. ρΐ n Saiie (b ) mSGBá I* M
TJl u I" 1 p 0)
T h ft n ( n 0*
TJtfc t n TjMf I 9 k u
L
10
Pós-filtro de 4 pontos
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
4PostFilter (a,b,c,d
a«çf
b^c
...
c-» ((b + 1}»1)
H
1
mvRotate{& d)
ÊNMMMlÊM
c+={{&+!)*■> 1),
a-»8-,(W*3»T$£»5;___
b -= c - ttr* t * t6> »Ά. 4~{ίΛ+§)>;>4ί. „;
s <■= <tfa * $ *'é)» 4),'____
a+= WiS + 16)» 5)
.....
Pós-filtro 2X2
O pós-filtro 2X2 é aplicado em áreas de blocos de acerto no plano DC para os ca-
15
nais de croma de dados YUV 4:2:0 e YUV 42:2. Se os dados de entrada forem pós-filtro 2x2 2x2Pós-filtro (a, b, c, d), é definido como a tabela a seguir:
a b c d s
1í+*ç_ _ ___
d
e *©> + 0» 1),
b«-»KS + 2t»*2) s +11» Ix
!>«>{{5 + 2f>>2^
d ^ya-t-1^» j>
+·1} »t},
_ *J±&S_______
b— c
Pós-filtro de 2 pontos
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
2PostFifter ía,b wm b+= ttfl +4) »H} 1 = .................... A sinalização da precisão requerida para desempenhar operações de transformada 5 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 computa- cional a ser aplicada pelo decodificador.
3. Precisão e comprimento de fala
O encodificador / decodificador exemplar desempenha operações de número intei- ro. Adicionalmente, o encodificador / decodificador exemplar suporta encodificação e decodi- ficação sem perda. No entanto, a precisão de máquina primária requerida pelo encodificador / decodificador exemplar é número inteiro.
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 arredondamen- to, o encodificador / decodificador exemplar define uma precisão de máquina secundária. Nes- 20 te 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 gran- demente invisíveis ao resto dos processos. Adicionalmente, os níveis de quantização são es- calados do mesmo modo que um fluxo criado com a precisão de máquina primária e decodifi- 25 cados utilizando a segunda precisão de máquina (e vice versa) produz uma imagem aceitável.
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 compri- mido é explicitamente marcada no cabeçalho.
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.
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 exce- dem 16 bits assinados para uma entrada de 8 bits. (No entanto, a operação intermediária 10 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.
De modo oposto, quando a precisão de máquina secundária for escolhida, a expan- sã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.
O primeiro encodificador / decodificador exemplar utiliza dois comprimentos de pa-
lavras diferentes para valores intermediários. Estes comprimentos são 16 e 32 bits.
Segundo Exemplo de Sintaxe e Semântica de fluxo de bits
O segundo exemplo de sintaxe e semântica de fluxo de bits é hierárquico e é com- preendido das seguintes camadas: Imagem, Placa, Macrobloco e Bloco.
Imagem (IMAGE)
IMAGE 0{
IMAGEHEADER
bAlphaPlane - FALSE IMAGEPLANiEHEADER
if (ALPHACHANNELJFLAG) { bAlphaPlane = TRUE IMAGE PLANE HEADER
N
um bits
De
scriptor
stru
INDEX TABLE
TILE
ariable ct
ariáble ct
V
ariable uct
V
ariable ct
stru
Str
stru
stru
ariable
ct Cabeçalho de Imagem (IMAGE_HEADER)
IMAGE_HEADER (){ N Des
um bits criptor
GDISiGNATURE 6 uim
4 sbf
RESERVED1 4 uim
sbf
RESER VED2 4 uim
sbf
TILINGFL AG I boo
1 FREQUENCYMODEBITSTREAMFLAG IMAGE ORIENTATION
INDEXT ABLEPRESENTFLAG
O VERL APINF O
SHORT HEADER FLAG
sbf
sbf
sbf
sbf
uim
uim
uim
uim
boo
LONG WORD FLAG
WINDOWING FLAG
boo
boo
TRIM FLEXBITS FLAG
boo
RESERVED3
ALPHACHANNEL FLAG
sbf
uim
boo
SOURCE CLR FMT
SOURCE BITDEPTH
If (SHORT HEADER FLAG) { WIDTHMINUSl
HEIGHT MIMJSl
else {
WIDTH MINUSl
sbf
sbf
sbf
sbf
uim
uim
uim
uim
uim
sbf HEIGHTMINUSI }
if (TILING FLAG) { NUMVERTTILESMINU S1
NUMHOR.IZTILESMINUS1
}
for (n = 0; n < NUM_VERT_TILES_MINUS1; n++) {
If (SHORTHEADERFLAG)
WIDTH_IN_MB_OF_TILE_MINU S1 [n] else
WIDTHINMBOFTILEMINUSI [n]
}
for (n = 0; n <
NUM HORIZ TILES MINUSl; n++) {
If (SHORTHEADERFLAG)
HEIGHT_IN_MB_OF_WLE_MINUS 1 [n] else
HEIGHT IN MB OF TILE MINUS1 [n]
}
if (WINDOWING FLAG) { NUM_TOP_EXTRAPIXELS
NUMLEFTEXTRAPIXELS
NUM BOTTOM EXTRAPIXELS sbf
NUMJRIGHTEXTRAPIXELS 6 uim
sbf
}
IMAGE_PLANE_HEADER () {
CLRJrMT
NO_SCALED_FLAG
BANDS_PRESENT
if (CLR_FMT == YUV444) { CHROMA_CENTERING COLOR_INTERPRETATION
}
Else if (CLR FMT == NCHANNEL) { NUM_CHANNELS_MINUS1 COLORJNTERPRETATION
}
if (SOURCE_CLR_FMT == BAYER) { BAYER_PATTERN CHROMA_CENTERING_BAYER COLOR_INTERPRETATION
}
if (SOURCE_BITDEPTH e
{BD16,BD16S,BD32,BD32S» { SHIFTBITS
}
if (SOU RCE_BITEPTH == BD32F) { LEN_MANTISSA EXP J3IAS
}
DC_FRAME UNIFORM
if (DC_FRAM E UNIFORM) {
DC_QP()
}
if (BANDS_PRESENT != SB_DC_ONLY) { USE_DC_QP
if (USE_DC_QP == FALSE) { LP_FRAME_UNIFORM if (LPJFRAMEJJNIFORM) {
Num Descriptor
bi
ts
3 1
4
4
4
2
2
4
uimsbf
bool
uimsbf
4 uimsbf 4 uimsbf
uimsbf
uimsbf
uimsbf
uimsbf
uimsbf
8 uimsbf
8 uimsbf
8 uimsbf
1 bool varia ble struct
bool
bool NUM_LP_QPS = 1
LP_QP() variable struct
}
}
if (BANDS_PRESENT != SB_NO_HIGHPASS) {
USE_LP_QP 1 bool
if (USE_LP_QP == FALSE) {
HP_FRAME_UNIFORM 1 bool
if (HP_FRAME_UNIFORM) {
NUM_HP_QPS = 1
HP_QP() variable struct
}
}
}
}
FLUSH_BYTE variable
}
Alguns elementos do fluxo de bits selecionados do segundo exemplo de sintaxe e semântica de fluxo de bits são definidos abaixo:
Flag de Palavra Longa (LONG_WORD_FLAG) (1 bit)
LONG_WORD_FLAG é um elemento de sintaxe de 1 bit e especifica se números 5 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 intei- 10 ros de 32 bits e arranjos devem ser utilizados para computações de transformada.
Note: a aritmética de 32 bits pode ser utilizada para decodificar uma imagem consi- derando 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.
Nenhum Flag de aritmética de escala (NO_SCALED_FLAG) (1 bit)
NO_SCALED_FLAG é um elemento de sintaxe de 1 bit que especifica se a trans-
formada 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 de- sempenhada arredondando a saída do estágio final (conversão de cor) por 3 bits.
Note: NO_SCALED_FLAG deve ser ajustado para TRUE se a codificação sem per- da 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. 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 QPs baixos.
4. Sinalização e Uso de Flag de Palavra Longa
Um formato de imagem exemplar para o encodificador / decodificador representati- vo 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ão- assinado, 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.
Ao mesmo tempo, o formato de imagem exemplar foi projetado para prover ima- gens de alta qualidade e eficiência de compressão e permite encodificação de baixa com- plexidade e implementações de decodificação.
Para suportar implementação de baixa complexidade, a transformada em um for- mato 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 po- dem ser suficientes para desempenhar todas as operações de transformada no decodifica- dor. Para outras profundidades de bit, aritmética de maior precisão pode ser necessária para operações de transformada.
A complexidade computacional de decodificação de um fluxo de bits específico po- de 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 e- Iemento de sintaxe (por exemplo, flag de 1 bit em um cabeçalho de imagem). Técnicas de sinalização descritas e elementos de sintaxe podem reduzir a complexidade computacional em fluxos de bits de decodificação.
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úme- ros 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.
Em uma implementação do encodificador / decodificador, as operações de trans- formada em lugar pode ser desempenhada nas palavras de largura de 16 bits, porém ope- raçõ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 trans- formada intermediária a e b por eles mesmos podem ser armazenados em números inteiros de 16 bits.
A aritmética de 32 bits pode ser utilizada para decodificar uma imagem consideran- do 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
Um exemplo de formato de imagem de codificador/decodificafor representativo su- porta uma ampla faixa de pixel, incluindo faixa dinâmica elevada e formatos de gama amplo ao mesmo 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.
Como discutido acima, o encodificador/decodificador representativo usa duas trans- formadas com base em bloco hierárquico, onde todas as etapas de transformada são ope- rações de números inteiros. Os pequenos erros de arredondamento presentes nessas ope- rações de números inteiros resultam em perda de eficiência de compressão durante com- pressão com perdas. Para combater este problema, uma implementação do encodifica- dor/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.
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 desem- penho de distorção de taxa.
No modo de precisão de não escala, não existe nenhum tal escala. Um encodifica- dor 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 comple- xidade computacional. Entretanto, existe uma pequena penalidade na eficiência de com- pressão para operar neste modo. Codificação sem perda (sem quantificação, insto é, esta- belecendo o Parâmetro de Quantificação ou QP para 1) pode apenas usar o modo de preci- são de escala para garantir reversibilidade.
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 NO_SCALED_FLAG. É recomendado que o decodificador 300 use o mesmo modo de precisão para suas operações. NO_SCALED_FLAG é um elemento sintático no cabeçalho de imagem que especi- fica o modo de precisão como segue:
Se NO_SCALED_FLAG == TRUE, o modo de não escala deveria ser usado para operação de decodificador.
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 é infe- rior quando o modo de não escala é usado devido a duas razões:
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 con- junto com o "LONG_WORD_FLAG." Em implementações VLSI, a expansão de faixa dinâmi- ca reduzida significa que a lógica de porta que implementa os bits mais significantes pode ser desenergizada.
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 de- codificador, 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.
Adicionalmente, o modo de não escala permite a compressão de mais bits signifi- cantes 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 arit- méticos. Em contraste, o modo de escala permite o mesmo para alguns 24 bits. Isto se dá devido aos três bits adicionais de faixa dinâmica introduzidos pelo processo de escala.
Os valores de dados no decodificador não excedem 16 bits sinalizado para uma en- trada de 8 bits para ambos os modos de precisão, (entretanto, operação intermediária den- tro de um estágio de transformada pode exceder esta figura).
Nota: NO_SCALED_FLAG é estabelecido para TRUE pelo encodificador, se a codi- ficaçã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.
O encodificador pode usar qualquer modo para compressão com perda. É reco- mendado 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 Em uma implementação do codificador/decodificafor representativo, as transforma- das (incluindo conversão de cor) são transformadas de número inteiro e implementadas a- travé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 mini- mizar o dano de erros de truncatura e assim maximizar desempenho de transformada, da- dos 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 des- locados para a esquerda não pode ser grande. O decodificador representativo implementa uma 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 sim- ples.
As transformadas utilizadas no codificador/decodificafor representativo são trans- formadas 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.
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 decodifica- dor. Como descrito acima, o codificador/decodificafor representativo tem estrutura de trans- formada 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 colo- cados em escala por um fato de 8 (por exemplo, para o modo de escala descrito acima).
Entretanto, conversão de cor e transformadas expendem dados. Se dados de en- trada forem deslocados em 3 bits, a saída do segundo estágio 4x4 DCT tem uma faixa di- nâmica de 17 bits, se os dados de entrada forem de 8 bits (saída de cada outra transforma- da 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 4x4 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 da- dos (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 trunca- tura aqui sejam mínimos.
Então, em casos com perda para imagens de 8 bits, no lado do encodificador, en- trada é 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 4x4 CT. No lado do decodificador, a entrada é deslocada para a esquerda em 1 bit antes do primeiro estágio 4x4 IDCT1 e deslocada para a direita em 3 bits após a conversão de cor.
7. Ambiente de Computação
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, in- cluindo 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 computa- cional e técnicas sinalização de precisão em um codec de mídia digital pode ser implemen- tado em conjuntos de circuito de hardware, em firmware que controla hardware de proces- samento de mídia digital, bem como em software de comunicação que executa dentro de um computador ou outro ambiente de computador, tal como mostrado na figura 6.
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.
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ási- ca (630) é incluída dentro de uma linha pontilhada. A unidade de processamento (610) exe- cuta instruções legíveis por computador e podem ser um processador virtual. Em um siste- ma de multiprocessamento, múltiplas unidades de processamento executam instruções exe- cutá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 e- xemplo, 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 digi- tal descrita com complexidade computacional e técnicas de sinalização de precisão.
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 barramen- to, 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 ope- 5 ração para outro software executando no ambiente de computação (600), e coordena ativi- dades dos componentes do ambiente de computação. (600).
O armazenamento (640) pode ser removível ou não removível, e inclui discos mag- néticos, fitas magnéticas ou cassetes, CD-ROMs, CD-RWs, DVDs, ou qualquer outro meio que pode ser usado para armazenar informações e que pode ser acessado dentro do ambi- 10 ente 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 comple- xidade computacional e técnicas de sinalização de precisão.
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 15 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 simi- lar 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- 20 falantes, gravador de CD, ou outro dispositivo que provê saída do ambiente de computação (600).
As conexões de comunicação (670) capaz de comunicação sobre um meio de co- municaçã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 copm-
primidas, 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 com fio ou sem fio implementadas com uma portadora elétrica, ótica, RF, in- fravermelha, acústica, ou outra portadora.
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 com- putador. 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
A encodificação / decodificação de mídia digital descrita com complexidade compu- tacional e técnicas de sinalização de precisão neste documento pode ser descrita no contex- to 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 po- dem ser executadas dentro de um ambiente de computação local ou distribuído.
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 ope- rações de computador reais correspondentes a esses termos variam dependendo da imple- mentação.
Em vista das muitas modalidades possíveis as quais os princípios da invenção po- dem ser aplicados, são reivindicados como invenção todas tais modalidades quantas pude- rem estar dentro do escopo e espírito das seguintes reivindicações e equivalentes das mesmas.

Claims (18)

1. Um método de decodificação de mídia digital, CARACTERIZADO pelo fato de que compreende: receber um fluxo de bit de mídia digital comprimido em um decodificador de mídia digital; analisar um elemento sintático a partir do fluxo de bit sinalizando um grau de preci- são aritmética para uso para computações de transformada durante processamento de da- dos de mídia digital; e emitir uma imagem reconstruída .
2. O método de decodificação de mídia digital, de acordo com a reivindicação 1, CARACTERIZADO pelo fato de que os sinais de elemento sintático para uso de uma preci- são aritmética elevada ou uma precisão aritmética baixa.
3. O método de decodificação de mídia digital, de acordo com a reivindicação 2, CARACTERIZADO pelo fato de que a precisão aritmética elevada é processamento de nú- mero de 32 bits, e a precisão aritmética baixa é processamento de número de 16 bits.
4. O método de decodificação de mídia digital, de acordo com a reivindicação 2, CARACTERIZADO pelo fato de que adicionalmente compreende: decodificar blocos de coeficientes de transformada a partir do fluxo de bit de mídia digital comprimido; no caso em que os sinais de elemento sintático se utilizam da precisão aritmética elevada, aplicar uma transformada inversa aos coeficientes de transformada usando pro- cessamento de precisão aritmética elevada; e no caso em que os sinais de elemento sintático se utilizam da precisão aritmética baixa, aplicar uma transformada inversa aos coeficientes de transformada usando proces- samento de precisão aritmética baixa.
5. O método de decodificação de mídia digital, de acordo com a reivindicação 4, CARACTERIZADO pelo fato de que a precisão aritmética elevada é processamento de nú- mero de 32 bits, e a precisão aritmética baixa é processamento de número de 16 bits.
6. O método de decodificação de mídia digital, de acordo com a reivindicação 2, CARACTERIZADO pelo fato de que adicionalmente compreende: decodificar blocos de coeficientes de transformada a partir do fluxo de bit de mídia digital comprimido; aplicar uma transformada inversa aos coeficientes de transformada usando proces- samento de precisão aritmética elevada independente do grau de precisão aritmética sinali- zado via elemento sintático.
7. Um método de encodificação de mídia digital compreendendo: receber dados de mídia digital em um encodificador de mídia digital; tomar uma decisão se usa ou não a aritmética de precisão baixa para computações de transformada durante processamento de dados de mídia digital; representar a decisão se usa ou não a aritmética de precisão baixa para computa- ções de transformada com um elemento sintático em um fluxo de bit encodificado, CARACTERIZADO pelo fato de que o elemento sintático é operável para comunicar a deci- são para um decodificador de mídia digital; e emitir o fluxo de bit encodificado.
8. O método de encodificação de mídia digital, de acordo com a reivindicação 7, CARACTERIZADO pelo fato de que tomar uma decisão compreende: cerificar se a aritmética de precisão baixa para computações de transformada pro- duz a mesma saída de decodificador como usando uma aritmética de precisão elevada para computações de transformada; e decidir se usa ou não a aritmética de precisão baixa baseada na verificação.
9. O método de encodificação de mídia digital, de acordo com a reivindicação 7, 15 CARACTERIZADO pelo fato de que a aritmética de precisão baixa é uma precisão de arit- mética de 16 bits.
10. O método de encodificação de mídia digital, de acordo com a reivindicação 7, CARACTERIZADO pelo fato de que adicionalmente compreende: tomar uma decisão se aplica ou não uma escala dos dados de mídia digital de en- trada antes da codificação de transformada; e representar a decisão se aplica ou não a escala com um elemento sintático no fluxo de bit encodificado.
11.0 método de encodificação de mídia digital, de acordo com a reivindicação 10, CARACTERIZADO pelo fato de que o tomar uma decisão se aplica ou não uma escala compreende decidir não aplicar escala dos dados de mídia digital de entrada quando da encodificação sem perda dos dados de mídia digital.
12. Um método de decodificação de mídia digital, CARACTERIZADO pelo fato de que compreende: receber um fluxo de bit de mídia digital comprimido em um decodificador de mídia digital; analisar um elemento sintático a partir do fluxo de bit sinalizando escolha de modos de precisão para computações de transformada durante processamento de dados de mídia digital; no caso em que um primeiro modo de precisão usando escala é sinalizado, colocar em escala a saída do decodificador; no caso em que um segundo modo de precisão sem escala é sinalizado, omitir para aplicar escala da saída; e emitir uma imagem reconstruída.
13. O método de decodificação de mídia digital, de acordo com a reivindicação 12, CARACTERIZADO pelo fato de que o colocar em escala a saída do decodificador compre- ende divisão de arredondamento da saída por um número.
14. O método de decodificação de mídia digital, de acordo com a reivindicação 12, CARACTERIZADO pelo fato de que a divisão de arredondamento da saída é uma divisão de arredondamento pelo número 8.
15. O método de decodificação de mídia digital, de acordo com a reivindicação 12, CARACTERIZADO pelo fato de que adicionalmente compreende: analisar um segundo elemento sintático a partir do fluxo de bit sinalizando se usa ou não uma precisão aritmética baixa para computações de transformada durante proces- samento de dados de mídia digital; decodificar blocos de coeficientes de transformada a partir do fluxo de bit de mídia digital comprimido; e no caso em que o segundo modo de precisão sem escalar e o uso de precisão a- ritmética baixa forem sinalizados, realizar processamento de transformada inversa dos coe- ficientes de transformada usando a precisão aritmética baixa.
16. O método de decodificação de mídia digital, de acordo com a reivindicação 15, CARACTERIZADO pelo fato de que a precisão aritmética baixa é uma precisão de aritméti- ca de 16 bits.
17. O método de decodificação de mídia digital, de acordo com a reivindicação 12, CARACTERIZADO pelo fato de que os dados de mídia digital são encodificados usando uma estrutura de transformada de dois estágios tendo uma transformada de primeiro estágio seguida por uma transformada de segundo estágio em coeficientes DC da transformada de primeiro estágio, o método de decodificação de mídia digital adicionalmente compreenden- do: decodificar dados de mídia digital a partir do fluxo de bit de mídia digital comprimi- do; aplicar uma transformada inversa de segundo estágio aos dados de mídia digital; aplicar uma transformada inversa de primeiro estágio aos dados de mídia digital; desempenhar conversão de cor dos dados de mídia digital; e colocar em escala a saída do decodificador no caso em que o primeiro modo de precisão usando escala é sinalizado, compreende: deslocar para a esquerda os dados de mídia digital em um único bit antes de entrar para a transformada inversa de primeiro está- gio, e deslocar para a direita os dados de mídia digital em três bits após a conversão de cor.
18. O método de decodificação de mídia digital, de acordo com a reivindicação 12, CARACTERIZADO pelo fato de que o fluxo de bit de mídia digital comprimido é encodifica- do de acordo com um esquema sintático definindo plano de imagem primária separado e plano de imagem alfa, o elemento sintático sinalizando escolha de modo de precisão sendo sinalizado por plano de imagem, desse modo o modo de precisão do plano de imagem pri- mária e o plano de imagem alfa são independentemente sinalizado, e o método de decodifi- cação compreende realizar as ações de analisar o elemento sintático sinalizando escolha de modo de precisão para cada plano de imagem, e no caso em que o primeiro modo de preci- são usando escala for sinalizado, colocar em escala a saída do decodificador para o respec- tivo plano de imagem.
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 true BRPI0807465A2 (pt) 2014-06-03
BRPI0807465A8 BRPI0807465A8 (pt) 2017-01-17
BRPI0807465B1 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 アンリツ株式会社 ミリ波帯用電波ハーフミラーおよびその透過係数平坦化方法
US10419718B2 (en) 2014-07-11 2019-09-17 Lg Electronics Inc. Method and device for transmitting and receiving broadcast signal
KR20170007333A (ko) 2014-07-11 2017-01-18 엘지전자 주식회사 방송 신호 송수신 방법 및 장치
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
CN111742554B (zh) * 2018-02-01 2021-08-06 联发科技股份有限公司 具有视频数据自适应量化的视频编码或解码方法和装置
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
JPH0645949A (ja) 1992-07-27 1994-02-18 Victor Co Of Japan Ltd 直交変換装置及び逆直交変換装置
JPH0645948A (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 日本電気株式会社 可逆変換可能な変換装置及び逆変換装置
US5825929A (en) * 1995-10-05 1998-10-20 Microsoft Corporation Transformation block optimization method
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
US6600785B1 (en) * 1997-12-01 2003-07-29 Matsushita Electric Industrial 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
US6154762A (en) * 1998-06-03 2000-11-28 Microsoft Corporation Fast system and method for computing modulated lapped transforms
US6073153A (en) * 1998-06-03 2000-06-06 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
DE69813912T2 (de) * 1998-10-26 2004-05-06 Stmicroelectronics Asia Pacific Pte Ltd. Digitaler audiokodierer mit verschiedenen genauigkeiten
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
US6963609B2 (en) * 2000-01-12 2005-11-08 Koninklijke Philips Electronics N.V. Image data compression
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
CN100452883C (zh) * 2001-12-17 2009-01-14 微软公司 处理视频图像的方法
JP4401783B2 (ja) * 2002-01-24 2010-01-20 株式会社日立製作所 動画像の符号化方法
US7379498B2 (en) * 2002-03-11 2008-05-27 Broadcom Corporation Reconstructing a compressed still image by transformation to a compressed moving picture image
JP2003348598A (ja) 2002-04-12 2003-12-05 Seiko Epson Corp メモリ効率のいい圧縮領域ビデオ処理のための且つ因数分解及び整数近似法を用いる高速逆動き補償のための方法並びに装置
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
US8218624B2 (en) * 2003-07-18 2012-07-10 Microsoft Corporation Fractional quantization step sizes for high bit rates
US7609763B2 (en) * 2003-07-18 2009-10-27 Microsoft Corporation Advanced bi-directional predictive coding of video frames
JP4617644B2 (ja) * 2003-07-18 2011-01-26 ソニー株式会社 符号化装置及び方法
US7499495B2 (en) * 2003-07-18 2009-03-03 Microsoft Corporation Extended range motion vectors
US7502415B2 (en) * 2003-07-18 2009-03-10 Microsoft Corporation Range reduction
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 삼성전자주식회사 비디오 데이터 인코딩 시스템 및 디코딩 시스템
US7933327B2 (en) 2004-01-30 2011-04-26 Panasonic Corporation Moving picture coding method and moving picture decoding method
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 株式会社東芝 画像符号化制御方法及びその装置
CN101662683B (zh) 2005-04-14 2012-05-30 汤姆森特许公司 空间可缩放视频解码方法和空间可缩放视频解码器
JP4542107B2 (ja) 2005-07-22 2010-09-08 三菱電機株式会社 画像復号装置及び画像復号方法
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.
CA2689634C (en) * 2007-06-14 2016-08-23 Thomson Licensing Modifying a coded bitstream
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
TW200843515A (en) 2008-11-01
WO2008103766A3 (en) 2008-11-27
TWI471013B (zh) 2015-01-21
BRPI0807465B1 (pt) 2020-05-26
EP2123045A4 (en) 2013-03-13
JP2010519858A (ja) 2010-06-03
KR20150003400A (ko) 2015-01-08
WO2008103766A2 (en) 2008-08-28
EP2123045B1 (en) 2018-10-17
KR101507183B1 (ko) 2015-03-30
US8942289B2 (en) 2015-01-27
IL199994A (en) 2015-11-30
JP2014078952A (ja) 2014-05-01
BRPI0807465A8 (pt) 2017-01-17
RU2518417C2 (ru) 2014-06-10
KR20090115726A (ko) 2009-11-05
IL199994A0 (en) 2010-04-15
EP2123045A2 (en) 2009-11-25
CN101617539A (zh) 2009-12-30
CN101617539B (zh) 2013-02-13
KR101550166B1 (ko) 2015-09-03
JP5457199B2 (ja) 2014-04-02
HK1140341A1 (en) 2010-10-08
RU2009131599A (ru) 2011-02-27
US20080198935A1 (en) 2008-08-21

Similar Documents

Publication Publication Date Title
BRPI0807465A2 (pt) Complexidade computacional e controle de precisão em codec de mídia digital baseada em transformada
US11863749B2 (en) Flexible quantization
CA2617632C (en) Prediction of transform coefficients for image compression
BRPI0807189B1 (pt) Método, meio de armazenamento e sistema de processamento de mídia digital
BRPI0506084B1 (pt) Transformada reversível para compactação de dados bidimensionaiscom perdas e sem perdas.
BRPI0614768A2 (pt) codificação e decodificação adaptável de coeficientes de variação ampla

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.