BR112013022516B1 - Modulação de código de pulso quantizada em codificação de vídeo - Google Patents
Modulação de código de pulso quantizada em codificação de vídeo Download PDFInfo
- Publication number
- BR112013022516B1 BR112013022516B1 BR112013022516-5A BR112013022516A BR112013022516B1 BR 112013022516 B1 BR112013022516 B1 BR 112013022516B1 BR 112013022516 A BR112013022516 A BR 112013022516A BR 112013022516 B1 BR112013022516 B1 BR 112013022516B1
- Authority
- BR
- Brazil
- Prior art keywords
- encoding
- video
- quantization step
- video data
- samples
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods 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/103—Selection of coding mode or of prediction mode
- H04N19/11—Selection of coding mode or of prediction mode among a plurality of spatial predictive coding modes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/60—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods 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/124—Quantisation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
- H04N19/17—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
- H04N19/176—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
MODULAÇÃO DE CÓDIGO DE PULSO QUANTIZADA EM CODIFICAÇÃO DE VÍDEO Um modo de PCM quantizada inclui a etapa de quantizar amostras de modo que a distorção seja adicionada ao vídeo codificado. Desse modo, os blocos de vídeo codificados com PCM quantizada parecem mais uniformemente com blocos de vídeo adjacentes que foram codificados com outras técnicas de compactação de perda, tal como codificação de inter -predição, ou codificação de intrapredição. Um codificador de vídeo pode primeiramente quantizar amostras de vídeo de entrada com uma etapa de quantização antes de codificar por PCM as amostras quantizadas. Essa etapa de quantização pode ser sinalizada para um decodificador no fluxo de bits de vídeo codificado. Um decodificador de vídeo pode receber o fluxo de bits de vídeo codificado que inclui amostras de vídeo codificadas por PCM quantizada. Essas amostras são primeiramente decodificadas utilizando demodulação de código de pulso e então são quantizadas de forma inversa com a mesma etapa de quantização usada para codificar o vídeo. O decodificador de vídeo pode extrair essa etapa de quantização a partir da profundidade de bits de saída no fluxo de bits de vídeo codificado.
Description
[001] Esse pedido reivindica o benefício do Pedido Provisional U.S. N° 61/449.413, depositado em 4 de março de 2011, que é aqui integralmente incorporado por referência.
[002] Essa revelação se refere à codificação de vídeo e, mais especificamente, às técnicas para modulação de código de pulso quantizada (PCM) de dados de vídeo.
[003] Capacidades de vídeo digital podem ser incorporadas em uma ampla gama de dispositivos, incluindo televisões digitais, sistemas de difusão direta digital, sistemas de difusão sem fio, assistentes pessoais digitais (PDAs), computadores de mesa ou laptop, câmeras digitais, dispositivos de gravação digital, aparelhos de reprodução de mídia digital, dispositivo de jogos de vídeo, consoles de jogos de vídeo, telefones celulares ou telefones de rádio via satélite, dispositivos de teleconferência de vídeo, e semelhante. Dispositivos de vídeo digital implementam técnicas de compactação de vídeo, tais como aquelas descritas nos padrões definidos por MPEG-2, MPEG-4, ITU-T H.263, ITU-T H.264; MPEG-4, Parte 10, Codificação Avançada de Vídeo (AVC), o padrão de Codificação de Vídeo de Alta Eficiência (HEVC) atualmente em desenvolvimento, e extensões de tais padrões, para transmitir, receber e armazenar mais eficientemente informação de vídeo digital.
[004] Técnicas de compactação de vídeo incluem predição espacial e/ou predição temporal para reduzir ou remover redundância inerente em sequências de vídeo. Para codificação de vídeo baseada em blocos, um quadro ou fatia de vídeo pode ser dividido em blocos. Cada bloco pode ser dividido adicionalmente. Blocos em um quadro ou fatia intra-codificado (I) são codificados utilizando predição espacial com relação às amostras de referência em blocos adjacentes no mesmo quadro ou fatia. Blocos em um quadro ou fatia inter-codificado (P ou B) podem usar predição espacial com relação às amostras de referência em blocos adjacentes no mesmo quadro ou fatia ou predição temporal com relação às amostras de referência em outros quadros de referência. Resultados de predição espacial ou temporal resultam em um bloco preditivo para um bloco a ser codificado. Dados residuais representam diferenças de pixel entre o bloco original a ser codificado e o bloco preditivo.
[005] Um bloco inter-codificado é codificado de acordo com um vetor de movimento que aponta para um bloco de amostras de referência formando o bloco preditivo, e os dados residuais indicando a diferença entre o bloco codificado e o bloco preditivo. Um bloco intra-codificado é codificado de acordo com um modo de intra-codificação e os dados residuais. Para compactação adicional, os dados residuais podem ser transformados a partir do domínio de pixel para um domínio de transformada, resultando em coeficientes de transformada residual, que podem então ser quantizados. Os coeficientes de transformada quantizados, inicialmente arranjados em um arranjo bidimensional, podem ser escaneados em uma ordem específica para produzir um vetor unidimensional de coeficientes de transformada para codificação por entropia.
[006] Em geral, essa revelação descreve os dispositivos e métodos para codificação de vídeo utilizando modulação de código de pulso quantizada (PCM). PCM quantizada inclui a etapa de quantizar amostras de vídeo de modo que distorção, em algumas circunstâncias, pode ser adicionada ao vídeo codificado. Desse modo, blocos de vídeo codificados com PCM quantizada parecem de forma mais uniforme com os blocos de vídeo adjacentes que foram codificados com outras técnicas de compactação de perda, tal como codificação de inter-predição, ou codificação de intra-predição.
[007] Um codificador de vídeo, por exemplo, pode em primeiro lugar quantizar amostras de vídeo de entrada com uma etapa de quantização antes da codificação de PCM das amostras quantizadas. A etapa de quantização geralmente adiciona distorção ao vídeo e define a profundidade de bits de saída das amostras codificadas por PCM quantizada. Essa etapa de quantização e/ou profundidade de bits de saída pode ser sinalizada para um decodificador no fluxo de bits de vídeo codificado. Como um exemplo, uma indicação da profundidade de bits de saída pode ser incluída como um elemento de sintaxe de 4 bits no cabeçalho de sequência de um fluxo de bits codificado.
[008] Um decodificador de vídeo como outro exemplo, pode receber o fluxo de bits de vídeo codificado que inclui amostras de vídeo codificado por PCM quantizada. Essas amostras são primeiramente decodificadas utilizando demodulação de código de pulso e então são quantizadas de forma inversa com a mesma etapa de quantização usada para codificar o vídeo. Como um exemplo, o decodificador de vídeo pode extrair essa etapa de quantização a partir do fluxo de bits de vídeo codificado.
[009] Em um exemplo, a revelação descreve um método para codificar dados de vídeo compreendendo amostras de codificação de um bloco de dados de vídeo usando modulação de código de pulso quantizada de acordo com uma profundidade de bits de saída. A modulação de código de pulso quantizada inclui quantizar as amostras do bloco de dados de vídeo de acordo com uma etapa de quantização definindo uma quantidade de quantização para produzir a profundidade de bits de saída, e modulação de código de pulso das amostras quantizadas. A revelação também descreve um método para decodificar dados de vídeo compreendendo decodificar as amostras do bloco codificado de dados de vídeo utilizando demodulação de código de pulso e quantização inversa das amostras decodificadas de acordo com uma etapa de quantização.
[0010] Em outro exemplo, a revelação descreve um aparelho configurado para codificar dados de vídeo. O aparelho inclui uma unidade de codificação de vídeo configurada para codificar amostras de um bloco de dados de vídeo utilizando modulação de código de pulso quantizada de acordo com uma profundidade de bits de saída. A unidade de codificação de vídeo inclui uma unidade de quantização configurada para quantizar as amostras do bloco de dados de vídeo de acordo com uma etapa de quantização definindo uma quantidade de quantização para produzir a profundidade de bits de saída, e uma unidade de modulação configurada para codificar as amostras quantizadas utilizando modulação de código de pulso. A revelação também descreve um aparelho configurado para decodificar dados de vídeo. O aparelho inclui uma unidade de decodificação de vídeo configurada para decodificar amostras do bloco codificado de dados de vídeo que foram codificadas com modulação de código de pulso quantizada de acordo com uma profundidade de bits de saída. A unidade de decodificação de vídeo inclui uma unidade de demodulação configurada para decodificar as amostras do bloco codificado de dados de vídeo utilizando demodulação de código de pulso e uma unidade de quantização inversa configurada para quantizar inversamente as amostras decodificadas de acordo com uma etapa de quantização.
[0011] Em outro exemplo, a revelação descreve um produto de programa de computador compreendendo um meio de armazenamento legível por computador que tem armazenado no mesmo as instruções que, quando executadas, fazem com que um processador de um dispositivo para codificar vídeo codifique as amostras de um bloco de dados de vídeo utilizando modulação de código de pulso quantizada de acordo com uma profundidade de bits de saída. As instruções para codificar amostras de um bloco de dados de vídeo utilizando modulação de código de pulso quantizada incluem instruções para quantizar as amostras do bloco de dados de vídeo de acordo com uma etapa de quantização definindo uma quantidade de quantização para produzir a profundidade de bits de saída, e para modulação de código de pulso das amostras quantizadas. A revelação também descreve um produto de programa de computador para decodificar dados de vídeo incluindo instruções para decodificar amostras do bloco codificado de dados de vídeo que foram codificadas com modulação de código de pulso quantizada de acordo com uma profundidade de bits de saída. As instruções para decodificar as amostras de um bloco de dados de vídeo incluem instruções para decodificar as amostras do bloco codificado de dados de vídeo utilizando demodulação de código de pulso e para quantização inversa das amostras decodificadas de acordo com uma etapa de quantização.
[0012] Os detalhes de uma ou mais modalidades da invenção são apresentados nos desenhos anexos e na descrição abaixo. Outras características, objetivos e vantagens da invenção serão evidentes a partir da descrição e dos desenhos, e a partir das reivindicações.
[0013] A Figura 1 é um diagrama de blocos ilustrando um sistema de codificação e decodificação de vídeo, exemplar.
[0014] A Figura 2 é um diagrama de blocos ilustrando um codificador de vídeo exemplar.
[0015] A Figura 3 é um diagrama de blocos ilustrando uma unidade de PCM quantizada exemplar de um codificador de vídeo.
[0016] A Figura 4 ilustra um fluxo de bits de vídeo codificado exemplar com um cabeçalho de sequência.
[0017] A Figura 5 é um diagrama de blocos ilustrando um decodificador de vídeo exemplar.
[0018] A Figura 6 é um diagrama de blocos ilustrando uma unidade de decodificação de PCM quantizada, exemplar de um decodificador de vídeo.
[0019] A Figura 7 é um fluxograma ilustrando um processo de codificação exemplar.
[0020] A Figura 8 é um fluxograma ilustrando um processo de decodificação exemplar.
[0021] Dispositivos de vídeo digital implementam técnicas de compactação de vídeo para transmitir e receber mais eficientemente a informação de vídeo digital. A compactação de vídeo pode aplicar técnicas de predição espacial (isto é, quadro intra) e/ou temporal (isto é, quadro inter) para reduzir ou remover redundância inerente em sequências de vídeo.
[0022] Para codificação de vídeo de acordo com o padrão de codificação de vídeo de alta eficiência (HEVC), um quadro de vídeo pode ser dividido em unidades de codificação, unidades de predição e unidades de transformada. Uma unidade de codificação geralmente se refere a uma região de imagem que serve como uma unidade básica a qual são aplicadas várias ferramentas de codificação para compactação de vídeo. Uma unidade de codificação tem tipicamente o formato quadrado, e pode ser considerada como similar a um assim chamado macrobloco, por exemplo, sob outros padrões de codificação de vídeo tal como ITU-T H.264. Uma unidade de codificação pode ser dividida em unidades de codificação menores de acordo com um esquema de partição de transformação quad-tree.
[0023] Para obter melhor eficiência de codificação, uma unidade de codificação pode ter tamanhos variáveis dependendo do conteúdo de vídeo. Além disso, uma unidade de codificação pode ser dividida em blocos menores para predição ou transformada. Particularmente, cada unidade de codificação pode ser dividida adicionalmente em unidades de predição e unidades de transformada. As unidades de predição podem ser consideradas como sendo similares às partições assim chamadas de macrobloco sob outros padrões de codificação de vídeo. As unidades de transformada se referem aos blocos de dados residuais aos quais é aplicada uma transformada para produzir coeficientes de transformada.
[0024] Uma unidade de codificação normalmente tem um componente de luminância, denotado como Y, e dois componentes croma, denominados U e V. Dependendo do formato de amostragem de vídeo, os tamanhos dos componentes, U e V, em termos do número de amostras, podem ser idênticos ou diferentes do tamanho do componente Y.
[0025] Para codificar um bloco (por exemplo, uma unidade de predição de dados de vídeo), um preditor para o bloco é primeiramente derivado. O preditor pode ser derivado quer seja através de intra-predição (I) (isto é, predição espacial) ou inter-predição (P ou B) (isto é, predição temporal). Portanto, algumas unidades de predição podem ser intra-codificadas (I) utilizando predição espacial com relação aos blocos de referência adjacentes no mesmo quadro, e outras unidades predição podem ser inter- codificadas (P ou B) com relação aos blocos de referência em outros quadros.
[0026] A partir da identificação de um preditor, a diferença entre o bloco de dados de vídeo original e seu preditor é calculada. Essa diferença também é chamada de resíduo de predição, e se refere às diferenças de pixel entre os pixels no bloco a ser codificado e o bloco de referência, isto é, preditor. Para obter melhor compactação, o resíduo de predição é geralmente transformado, por exemplo, utilizando transformada discreta de cosseno (DCT), transformada de número inteiro, transformada Karhunen-Loeve (K-L), ou outra transformada.
[0027] A transformada converte os valores de diferença de pixel no domínio espacial em coeficientes de transformada no domínio de transformada, por exemplo, um domínio de frequência. Os coeficientes de transformada são normalmente arranjados em um arranjo bidimensional (2-D) para cada unidade de transformada. Para compactação adicional, os coeficientes de transformada podem ser quantizados. Um codificador de entropia então aplica codificação por entropia, cada Codificação de Comprimento Variável Adaptativo de Contexto (CAVLC), Codificação Aritmética Binária Adaptativa de Contexto (CABAC), ou semelhante, aos coeficientes de transformada quantizada.
[0028] Em alguns casos, ao utilizar as técnicas descritas acima, é possível para o codificador de vídeo atuar como um meio de expansão de dados mais propriamente do que um compressor de dados. Embora um codificador geralmente obtenha compactação muito boa para a maior parte do conteúdo de vídeo, partes isoladas de um quadro de vídeo contendo conteúdo atípico no domínio de transformada podem produzir grandes quantidades de dados codificados. Consequentemente, para alguns conteúdos de vídeo, o codificador pode não satisfazer o objetivo de compactar os dados de vídeo, e em vez disso pode produzir dados excessivos. Para esses casos, um codificador de vídeo pode aperfeiçoar a compactação de vídeo global mediante aplicação de codificação de modulação de código de pulso (PCM) em vez de codificação preditiva. Codificação de PCM é normalmente um processo de codificação sem perda que codifica as amostras individuais de dados de vídeo sem compactação baseada em predição.
[0029] O padrão de codificação de vídeo MPEG-2, como um exemplo, especifica um limite superior no número de bits codificados que podem ser gerados para um macrobloco codificado de dados de vídeo. Um limite superior auxilia no projeto de decodificador mediante especificação de uma quantidade específica de dados que é obtida e então processada para decodificação de macrobloco. A geração de bits de codificação em excesso desse limite superior seria inconsistente com o projeto de decodificador MPEG-2.
[0030] No modo de PCM intra especificado pelo padrão ITU-T H.264/MPEG-4 AVC (em seguida H.264), o codificador transmite valores de amostra de um macrobloco sem predição, codificação de transformada, e codificação por entropia. Isto é, no modo de PCM intra para macroblocos, o codificador simplesmente codifica os valores de pixel na região do macrobloco utilizando, por exemplo, 8 bits por amostra. O codificador gera os valores de pixel de PCM codificados como valores brutos de byte. O modo de PCM intra permite que os codificadores ajustem o número de bits de cada macrobloco para um valor predeterminado ou menos sem computação complicada.
[0031] O uso de codificação de modo de PCM intra em H.264 é indicado por um elemento de sintaxe de modo de macrobloco. Quando codificação de modo de PCM intra é usada, os valores de amostra de cada macrobloco associado são transmitidos sem predição, codificação de transformada, e codificação por entropia. Observar que, quando codificação por entropia é codificação aritmética binária de contexto adaptativo (CABAC), codificação aritmética binária (BAC) é terminada e inicializada antes da transmissão de valores de amostra.
[0032] O modelo atual do HEVC não tem ferramenta comparável com PCM intra em H.264. Um problema é que as características de HEVC são diferentes daquelas de H.264. Em H.264, a quantidade de dados é limitada em um nível de macrobloco, o qual tem um tamanho de 16x16 pixels. Em comparação, HEVC tem unidades de codificação e unidades de predição de até 64x64 pixels, ou possivelmente maiores. Como resultado, a restrição para limitar a quantidade de dados por unidade é maior, para satisfazer algumas exigências de rede encontradas na prática, em HEVC do que ocorre para H.264.
[0033] Outro problema do modo de PCM intra em H.264 é que o mesmo não tem perda. Com codificação sem perda, os dados codificados têm reconstrução perfeita pelo lado do decodificador. Portanto, um macrobloco completamente não distorcido pode aparecer em um quadro codificado de outro modo com perda. Isso pode ser visualmente chocante, ou ao menos visualmente perceptível, devido às diferenças visuais entre os dados sem perda e os dados adjacentes com perda.
[0034] Ainda outro problema de HEVC é que ele pode suportar conteúdo de 8 bits, 10 bits, 12 bits, ou até mesmo profundidades de bits maiores. Assim, a sinalização de uma unidade de codificação 64x64 (ou maior) com 12 bits por amostra pode resultar em uma quantidade indesejável de dados para o modo de PCM.
[0035] Essa revelação introduz o conceito de um modo de PCM quantizada para uso em processos de codificação de vídeo, tais como aqueles definidos de acordo com os padrões H.264 e HEVC. No modo de PCM quantizada, o codificador de vídeo quantiza os blocos de pixels de entrada antes da aplicação de codificação de PCM. Similarmente, quando os dados de vídeo tiverem sido codificados utilizando o modo de PCM quantizada, um decodificador de vídeo primeiramente demodularia os pulsos dos dados de vídeo codificados e então aplicaria quantização inversa. As unidades de codificação (HEVC), as unidades de predição (HEVC), as unidades de transformada (HEVC), os macroblocos (H.264), e as partições (H.264) serão geralmente referidos nessa revelação como blocos.
[0036] O modo de PCM quantizada pode suportar dois objetivos. Primeiro lugar, codificação de PCM quantizada pode permitir que um codificador especifique uma limitação flexível na quantidade máxima de dados para uma unidade de codificação em diferentes situações, tal como diferentes níveis, perfis, taxas de quadro, parâmetros de quantização (QPs), resoluções, ou semelhante. Sem tal limitação, codificação de PCM poderia subjugar o nível de bits de codificação disponíveis para um bloco. Essa flexibilidade pode ser obtida mediante aplicação de etapas de quantização de contexto específico de modo a controlar a profundidade de bits de saída, e assim a quantidade máxima de dados produzidos para os dados de vídeo codificados por PCM. Em segundo lugar, mediante introdução de perda no processo de PCM, a codificação de PCM quantizada pode reduzir ou eliminar a aparência visual indesejável de um quadro de vídeo que inclui ambas as partes, com perda e sem perda, de uma forma direta.
[0037] A Figura 1 é um diagrama de blocos ilustrando um sistema de codificação e de decodificação de vídeo exemplar 10 que pode ser configurado para utilizar as técnicas para modulação/demodulação de código de pulso quantizada de acordo com exemplos dessa revelação. Conforme mostrado na Figura 1, o sistema 10 inclui um dispositivo de origem 12 que transmite vídeo codificado para um dispositivo de destino 14 por intermédio de um canal de comunicação 16. O vídeo codificado também pode ser armazenado em um meio de armazenamento 34 ou em um servidor de arquivos 36 e pode ser acessado pelo dispositivo de destino 14 quando desejado. O dispositivo de origem 12 e o dispositivo de destino 14 podem compreender qualquer um de uma ampla variedade de dispositivos, incluindo computadores de mesa, computadores notebook (isto é, laptop), computadores tablet, conversores de sinais de frequência, aparelhos telefônicos tais como os assim chamados smartphones, televisões, câmeras, dispositivos de exibição, aparelhos de reprodução de mídia digital, consoles de jogos de vídeo ou semelhante. Em muitos casos, tais dispositivos podem ser equipados para comunicação sem fio. Portanto, o canal de comunicação 16 pode compreender um canal sem fio, um canal cabeado, ou uma combinação de canais sem fio e cabeados adequados para transmissão de dados de vídeo codificado. Similarmente, o servidor de arquivos 36 pode ser acessado pelo dispositivo de destino 14 através de qualquer conexão padrão de dados, incluindo uma conexão de Internet. Isso pode incluir um canal sem fio (por exemplo, uma conexão WiFi), uma conexão cabeada (por exemplo, DSL, modem a cabo, etc.), ou uma combinação de ambos que é adequada para acessar os dados de vídeo codificado armazenados em um servidor de arquivos.
[0038] Técnicas para modulação/demodulação de código de pulso quantizada, de acordo com exemplos dessa revelação, podem ser aplicadas à codificação de vídeo em suporte de qualquer uma de uma variedade de aplicações de multimídia, tal como transmissões de televisão pelo ar, transmissões de televisão a cabo, transmissões de televisão via satélite, transmissões de vídeo de fluxo contínuo, por exemplo, por intermédio da Internet, codificação de vídeo digital para armazenamento em um meio de armazenamento de dados, decodificação de vídeo digital armazenado em um meio de armazenamento de dados, ou outras aplicações. Em alguns exemplos, o sistema 10 pode ser configurado para suportar transmissão de vídeo de uma via ou de duas vias para suportar aplicações tais como fluxo contínuo de vídeo, reprodução de vídeo, difusão de vídeo, e/ou telefonia de vídeo.
[0039] No exemplo da Figura 1, o dispositivo de origem 12 inclui uma fonte de vídeo 18, um codificador de vídeo 20, um modulador/demodulador 22 e um transmissor 24. No dispositivo de origem 12, a fonte de vídeo 18 pode incluir uma fonte tal como um dispositivo de captura de vídeo, tal com uma câmera de vídeo, um arquivo de vídeo contendo vídeo previamente capturado, uma interface de alimentação de vídeo para receber vídeo a partir de um provedor de conteúdo de vídeo, e/ou um sistema gráfico de computador para gerar dados gráficos de computador como o vídeo de origem, ou uma combinação de tais fontes. Como um exemplo, se a fonte de vídeo 18 é uma câmera de vídeo, o dispositivo de origem 12 e o dispositivo de destino 14 podem formar os assim chamados fones de câmera ou fones de vídeo. Contudo, as técnicas descritas nessa revelação podem ser aplicáveis à codificação de vídeo em geral, e podem ser empregadas nas aplicações sem fio e/ou cabeadas.
[0040] O vídeo capturado, pré-capturado ou gerado em computador pode ser codificado pelo codificador de vídeo 20. A informação de vídeo codificado pode ser modulada pelo modem 22 de acordo com um padrão de comunicação, tal como um protocolo de comunicação sem fio, e transmitida para o dispositivo de destino 14 por intermédio do transmissor 24. O modem 22 pode incluir vários misturadores, filtros, amplificadores ou outros componentes projetados para modulação de sinal. O transmissor 24 pode incluir circuitos projetados para transmissão de dados, incluindo amplificadores, filtros e uma ou mais antenas.
[0041] O vídeo capturado, pré-capturado ou gerado por computador que é codificado pelo codificador de vídeo 20 também pode ser armazenado em um meio de armazenamento 34 ou em um servidor de arquivo 36 para consumo posterior. O meio de armazenamento 34 pode incluir discos Blu-ray, DVDs, CD-ROMs, memória flash ou quaisquer outros meios de armazenamento digital, adequados para armazenar vídeo codificado. O vídeo codificado armazenado no meio de armazenamento 34 pode ser então acessado pelo dispositivo de destino 14 para decodificação e reprodução.
[0042] O servidor de arquivos 36 pode ser qualquer tipo de servidor capaz de armazenar vídeo codificado e transmitir esse vídeo codificado para o dispositivo de destino 14. Servidores de arquivos exemplares incluem um servidor de rede (por exemplo, para um sítio de rede), um servidor FTP, dispositivos de armazenamento ligados à rede (NAS), uma unidade de disco local ou qualquer outro tipo de dispositivo capaz de armazenar dados de vídeo codificado e transmitir os mesmos para um dispositivo de destino. A transmissão de dados de vídeo codificado a partir do servidor de arquivo 36 pode ser uma transmissão de fluxo contínuo, uma transmissão de transferência, ou uma combinação de ambos. O servidor de arquivo 36 pode ser acessado pelo dispositivo de destino 14 através de qualquer conexão padrão de dados, incluindo uma conexão de Internet. Isso pode incluir um canal sem fio (por exemplo, uma conexão Wi-Fi), uma conexão cabeada (por exemplo, DSL, modem a cabo, Ethernet, USB, etc.), ou uma combinação de ambos que seja adequada para acessar dados de vídeo codificado armazenados em um servidor de arquivos.
[0043] O dispositivo de destino 14, no exemplo da Figura 1, inclui um receptor 26, um modem 28, um decodificador de vídeo 30 e um dispositivo de exibição 32. O receptor 26 do dispositivo de destino 14 recebe informação através do canal 16, e o modem 28 demodula a informação para produzir um fluxo de bits demodulado para o decodificador de vídeo 30. A informação comunicada através do canal 16 pode incluir uma variedade de informação de sintaxe gerada pelo codificador de vídeo 20 para uso pelo decodificador de vídeo 30 na decodificação de dados de vídeo. Tal sintaxe também pode ser incluída com os dados de vídeo codificados armazenados em um meio de armazenamento 34 ou um servidor de arquivos 36. Cada decodificador de vídeo 20 e o decodificador de vídeo 30 podem formar parte de um codificador-decodificador respectivo (codec) que é capaz de codificar ou decodificar os dados de vídeo.
[0044] O dispositivo de exibição 32 pode ser integrado com, ou externo ao dispositivo de destino 14. Em alguns exemplos, o dispositivo de destino 14 pode incluir um dispositivo de exibição integrado e também ser configurado para estabelecer interface com um dispositivo de exibição externo. Em outros exemplos, o dispositivo de destino 14 pode ser um dispositivo de exibição. Em geral, o dispositivo de exibição 32 exibe os dados de vídeo decodificados para um usuário e pode compreender qualquer um de uma variedade de dispositivos de exibição tal como um display de cristal líquido (LCD), um display de plasma, um display de diodo de emissão de luz orgânica (OLED), ou outro tipo de dispositivo de exibição.
[0045] No exemplo da Figura 1, o canal de comunicação 16 pode compreender qualquer meio de comunicação sem fio ou cabeado, tal como um espectro de radiofrequência (RF) ou uma ou mais linhas físicas de transmissão, ou qualquer combinação de mídia sem fio e cabeada. O canal de comunicação 16 pode formar parte de uma rede baseada em pacote, tal como uma rede de área local, uma rede de área remota ou uma rede global tal como a Internet. O canal de comunicação 16 geralmente representa qualquer meio de comunicação adequado, ou uma coleção de meios de comunicação diferentes para transmitir dados de vídeo a partir do dispositivo de origem 12 para o dispositivo de destino 14, incluindo qualquer combinação adequada de meios cabeados ou sem fio. O canal de comunicação 16 pode incluir roteadores, comutadores, estações base ou qualquer outro equipamento que possa ser útil para facilitar a comunicação a partir do dispositivo de origem 12 para o dispositivo de destino 14.
[0046] O codificador de vídeo 20 e o decodificador de vídeo 30 podem operar de acordo com um padrão de compactação de vídeo, tal como o padrão de Codificação de Vídeo de Alta Eficiência (HEVC) atualmente em desenvolvimento, e pode estar em conformidade com o Modelo de Teste HEVC (HM). Alternativamente, o codificador de vídeo 20 e o decodificador de vídeo 30 podem operar de acordo com outros padrões patenteados ou da indústria, tal como o padrão ITU-H.264, referido alternativamente como MPEG-4, Parte 10, Codificação Avançada de Vídeo (AVC), ou extensões de tais padrões. As técnicas dessa revelação, contudo, não são limitadas a qualquer padrão de codificação específico. Outros exemplos incluem MPEG-2 e ITU-T H.263.
[0047] Embora não mostrado na Figura 1, em alguns aspectos, o codificador de vídeo 20 e o decodificador de vídeo 30 podem ser individualmente integrados com um codificador e decodificador de áudio, e podem incluir unidades de multiplexação/demultiplexação apropriadas, ou outro hardware e software, para lidar com a codificação tanto de áudio como de vídeo em um fluxo de dados comum ou fluxos de dados separados. Se aplicável, em alguns exemplos, unidades de multiplexação/demultiplexação podem estar de acordo com o protocolo de multiplexador ITU H.223, ou outros protocolos tal como o protocolo de datagrama de usuário (UDP).
[0048] O codificador de vídeo 20 e o decodificador de vídeo 30 podem ser individualmente implementados como qualquer um de uma variedade de conjuntos de circuito de codificador, adequado tal como um ou mais microprocessadores, processadores de sinal digital (DSPs), circuitos integrados de aplicação específica (ASICs), arranjos de portas programáveis no campo (FPGAs), lógica discreta, software, hardware, firmware ou qualquer combinação dos mesmos. Quando as técnicas são implementadas parcialmente em software, um dispositivo pode armazenar instruções para o software em um meio legível por computador não transitório adequado e executar as instruções em hardware utilizando um ou mais processadores para realizar as técnicas dessa revelação. Cada codificador de vídeo 20 e decodificador de vídeo 30 pode ser incluído em um ou mais codificadores ou decodificadores, qualquer um dos quais pode ser integrado como uma parte de um codificador/decodificador combinado (codec) em um dispositivo respectivo.
[0049] O codificador de vídeo 20 pode implementar qualquer uma ou todas as técnicas dessa revelação para usar um modo de PCM quantizada em um processo de codificação de vídeo. Similarmente, o codificador de vídeo 30 pode implementar qualquer uma ou todas essas técnicas para usar um modo de PCM em um processo de decodificação de vídeo. Um codificador de vídeo como descrito nessa revelação, pode se referir a um codificador de vídeo ou a um decodificador de vídeo. Similarmente, um codificador de vídeo e um decodificador de vídeo podem ser referidos como unidades de codificação de vídeo e unidades de decodificação de vídeo, respectivamente. Similarmente, codificação de vídeo pode se referir à codificação de vídeo ou decodificação de vídeo.
[0050] A Figura 2 é um diagrama de blocos ilustrando um exemplo de um codificador de vídeo 20 que pode usar as técnicas para um modo de PCM quantizada em um processo de codificação de vídeo conforme descrito nessa revelação. O codificador de vídeo 20 será descrito no contexto de codificação HEVC com o propósito de ilustração, mas sem limitação dessa revelação em relação a outros padrões ou métodos de codificação que podem se beneficiar de um modo de PCM quantizada. Além da codificação de vídeo por PCM quantizada, o codificador de vídeo 20 pode realizar codificação, intra e inter, de unidades de codificação dentro de quadros de vídeo.
[0051] Intra-codificação se baseia em predição espacial para reduzir ou remover redundância espacial em vídeo dentro de um determinado quadro de vídeo. A inter- codificação se baseia em predição temporal para reduzir ou remover redundância temporal entre um quadro atual e quadros previamente codificados de uma sequência de vídeo. Modo intra (modo I) pode se referir a qualquer um de vários modos de compactação de vídeo de base espacial. Modos inter tal como predição unidirecional (modo P) ou predição bidirecional (modo B) pode se referir a qualquer um de vários modos de compactação de vídeo de base temporal.
[0052] Conforme mostrado na Figura 2, o codificador de vídeo 20 recebe um bloco de vídeo atual dentro de um quadro de vídeo a ser codificado. No exemplo da Figura 2, o codificador de vídeo 20 inclui uma unidade de compensação de movimento 44, uma unidade de estimação de movimento 42, uma unidade de intra-predição 46, uma unidade de PCM quantizada 47, um armazenador de quadro de referência 64, um somador 50, uma unidade de transformada 52, uma unidade de quantização de transformada 54, e uma unidade de codificação de entropia 56. A unidade de transformada 52 ilustrada na Figura 2 é a unidade que aplica a transformada atual a um bloco de dados residuais, e não deve ser confundido com um bloco de coeficientes de transformada, o qual também pode ser referido como uma unidade de transformada (TU) de um CU. Para reconstrução de blocos de vídeo, o codificador de vídeo 20 também inclui uma unidade de quantização inversa de transformada 58, uma unidade de transformada inversa 60, e um somador 62. Um filtro de desblocagem (não mostrado na Figura 2) também pode ser incluído para filtrar os limites de bloco para remover artefatos de bloco a partir do vídeo reconstruído. Se desejado, o filtro de desblocagem tipicamente filtraria a saída do somador 62.
[0053] Durante o processo de codificação, o codificador de vídeo 20 recebe um quadro de vídeo ou fatia a ser codificado. O quadro ou fatia pode ser dividido em múltiplos blocos de vídeo, por exemplo, unidades de codificação maiores (LCUs). A unidade de estimação de movimento 42 e a unidade de compensação de movimento 44 realizam inter-codificação preditiva do bloco de vídeo recebido em relação a um ou mais blocos em um ou mais quadros de referência para prover compactação temporal. A unidade de intra-predição 46 pode realizar codificação preditiva intra do bloco de vídeo recebido em relação a um ou mais blocos adjacentes no mesmo quadro ou fatia que o bloco a ser codificado para prover compactação espacial. A unidade de PCM quantizada 47 realiza codificação de PCM quantizada nos blocos de vídeo de entrada de acordo com as técnicas dessa revelação.
[0054] A unidade de seleção de modo 40 pode selecionar um dos modos de codificação, intra, inter ou PCM quantificada, por exemplo, com base em erro (isto é, distorção) e/ou resultados de compactação para cada modo. Se os modos, inter ou intra, forem selecionados, a unidade de seleção de modo 40 provê o bloco intra-codificado ou inter resultante ao somador 50 para gerar dados de bloco residual e ao somador 62 para reconstruir o bloco codificado para uso em um quadro de referência. Alguns quadros de vídeo podem ser designados como quadros I, onde todos os blocos em um quadro I são codificados em um modo de intra-predição. Em alguns casos, a unidade de intra- predição 46 pode realizar codificação de intra-predição de um bloco em um quadro P ou B, por exemplo, quando a pesquisa de movimento realizada pela unidade de estimação de movimento 42 não resulta em uma predição suficiente do bloco.
[0055] A unidade de estimação de movimento 42 e a unidade de compensação de movimento 44 podem ser altamente integradas, mas são ilustradas separadamente com o propósito conceptual. Estimativas de movimento é o processo de gerar vetores de movimento, que estimam o movimento para os blocos de vídeo. Um vetor de movimento, por exemplo, pode indicar o deslocamento de uma unidade de predição em um quadro atual em relação a uma amostra de referência de um quadro de referência. Uma amostra de referência pode ser um bloco que é encontrado como combinando estreitamente com a porção do CU incluindo a PU sendo codificada em termos de diferença de pixel; o que pode ser determinado pela soma da diferença absoluta (SAD), diferença de soma de quadrados (SSD), ou outras métricas de diferença. Compensação de movimento, realizada pela unidade de compensação de movimento 44, pode envolver buscar ou gerar valores para a unidade de predição com base no vetor de movimento determinado pela estimação de movimento.
[0056] A unidade de estimação de movimento 42 calcula um vetor de movimento para uma unidade de predição de um quadro inter-codificado, mediante comparação da unidade de predição com amostras de referência de um quadro de referência armazenado no armazenador de quadro de referência 64. Em alguns exemplos, o codificador de vídeo 20 pode calcular valores para posições de pixel de inteireza secundária de quadros de referência armazenados no armazenador de quadros de referência 64. Por exemplo, o codificador de vídeo 20 pode calcular valores de posições de pixels de um quarto, posições de pixel de um oitavo, ou outras posições de pixel fracionárias do quadro de referência. Portanto, a unidade de estimação de movimento 42 pode realizar uma pesquisa de movimento em relação às posições de pixel integral e posições de pixel fracionário e emitir um vetor de movimento com precisão de pixel fracionária. A unidade de estimação de movimento 42 envia o vetor de movimento calculado para a unidade de codificação de entropia 56 e unidade de compensação de movimento 44. A porção do quadro de referência identificada por um vetor de movimento pode ser referida como uma amostra de referência. A unidade de compensação de movimento 44 pode calcular um valor de predição para uma unidade de predição de um CU atual, por exemplo, mediante recuperação da amostra de referência identificada por um vetor de movimento para a PU.
[0057] A unidade de intra-predição 46 pode realizar codificação de intra-predição no bloco recebido, como uma alternativa para a codificação de inter-predição realizada pela unidade de estimação de movimento 42 e unidade de compensação de movimento 44. A unidade de intra- predição 46 pode codificar o bloco recebido em relação aos blocos adjacentes, previamente codificados, por exemplo, os blocos acima, acima e para a direita, acima e para a esquerda, ou à esquerda do bloco atual, supondo a ordem de codificação da esquerda para a direita, de cima para baixo para os blocos. A unidade de intra-predição 46 pode ser configurada com uma variedade de diferentes modos de intra- predição. Por exemplo, a unidade de intra-predição 46 pode ser configurada com certo número de modos de predição direcional, por exemplo, 33 modos de predição direcional, com base no tamanho do CU sendo codificado.
[0058] A unidade de intra-predição 46 pode selecionar um modo de intra-predição mediante, por exemplo, cálculo dos valores de erro para vários modos de intra- predição e seleção de um modo que produza o mais baixo valor de erro. Os modos de predição direcional podem incluir funções para combinar valores de pixels espacialmente adjacentes e aplicar os valores combinados para formar um ou mais pixels de um bloco preditivo para uma PU. Quando os valores para todas as posições de pixel na PU tiverem sido calculados, a unidade de intra-predição 46 pode calcular um valor de erro para o modo de predição com base nas diferenças de pixel entre a PU e o bloco preditivo. A unidade de intra-predição 46 pode continuar a testar os modos de intra-predição até que um modo de intra- predição que produz um valor de erro aceitável seja descoberto. A unidade de intra-predição 46 pode então enviar a PU para o somador 50.
[0059] O codificador de vídeo 20 forma um bloco residual mediante subtração dos dados de predição calculados pela unidade de compensação de movimento 44 ou pela unidade de intra-predição 46 a partir do bloco de vídeo original sendo codificado. O somador 50 representa o componente, ou componentes, que realizam essa operação de subtração. O bloco residual pode corresponder a uma matriz bidimensional de valores de diferença de pixel, onde o número de valores no bloco residual é o mesmo que o número de pixels na PU correspondendo ao bloco residual. Os valores no bloco residual podem corresponder às diferenças, isto é, erro, entre valores de pixels co-localizados na PU e no bloco original a ser codificado. As diferenças podem ser diferenças croma ou luma dependendo do tipo de bloco que é codificado.
[0060] A unidade de transformada 52 pode formar uma ou mais unidades de transformada (TUs) a partir do bloco residual. A unidade de transformada 52 aplica uma transformada, tal como uma transformada discreta de cosseno (DCT), uma transformada direcional, ou uma transformada similar de modo conceptual, para a TU, produzindo um bloco de vídeo compreendendo coeficientes de transformada. A unidade de transformada 52 pode enviar os coeficientes resultantes de transformada para a unidade de quantização de transformada 54. A unidade de quantização de transformada 54 pode então quantizar os coeficientes de transformada. A unidade de codificação de entropia 56 pode então realizar uma varredura dos coeficientes de transformada quantizados na matriz de acordo com uma ordem de varredura especificada pra produzir um arranjo unidimensional. Essa revelação descreve a unidade de codificação de entropia 56 como realizando a varredura. Contudo, deve ser entendido que, em outros exemplos, outras unidades de processamento, tal como a unidade de quantização de transformada 54 poderiam realizar a varredura. A unidade de codificação de entropia 56 então codifica por entropia o arranjo 1D dos coeficientes de transformada para produzir um fluxo de bits codificado por entropia.
[0061] A unidade de codificação de entropia 56 pode empregar codificação de entropia tal como CAVLC ou CABAC para os coeficientes escaneados. Além disso, a unidade de codificação de entropia 56 pode codificar informação de vetor de movimento (MV) e qualquer de uma variedade de elementos de sintaxe útil na decodificação dos dados de vídeo no decodificador de vídeo 30. O decodificador de vídeo 30 pode usar esses elementos de sintaxe para reconstruir os dados de vídeo codificados. Após a codificação por entropia pela unidade de codificação de entropia 56, o vídeo codificado resultante pode ser transmitido para outro dispositivo, tal como o decodificador de vídeo 30, ou arquivado para posterior transmissão ou recuperação.
[0062] A unidade de quantização inversa de transformada 58 e a unidade de transformada inversa 60 aplicam quantização inversa e transformada inversa, respectivamente, para reconstruir o bloco residual no domínio de pixel, por exemplo, para uso posterior como um bloco de referência. A unidade de compensação de movimento 44 pode calcular um bloco de referência mediante adição do bloco residual a um bloco preditivo de um dos quadros do armazenador de quadros de referência 64. A unidade de compensação de movimento 44 também pode empregar um ou mais filtros de interpolação para o bloco residual reconstruído para calcular valores de pixel de inteireza secundária para uso na estimação de movimento. O somador 62 adiciona o bloco residual reconstruído ao bloco de predição de movimento compensado produzido pela unidade de compensação de movimento 44 para produzir um bloco de vídeo reconstruído para armazenamento no armazenador de quadro de referência 64. O bloco de vídeo reconstruído pode ser usado pela unidade de estimação de movimento 42 e pela unidade de compensação de movimento 44 como um bloco de referência para inter-codificação de um bloco em um quadro de vídeo subsequente.
[0063] A unidade de PCM quantizada 47 recebe os blocos de vídeo (por exemplo, unidades de codificação) a partir da unidade de seleção de modo 40 quando o modo de PCM quantizada é selecionado. Conforme descrito acima, o modo de PCM quantizada pode ser selecionado quando for determinado que outros modos de codificação (por exemplo, codificação de intra-predição ou codificação de inter- predição) atuariam como um meio de expansão de dados mais propriamente do que um compactador de dados para uma ou mais unidades de codificação de um quadro de vídeo. Por exemplo, a unidade de seleção de modo 40 pode testar os vários modos de codificação no bloco e determinar se ou não os modos satisfazem uma métrica de distorção de taxa desejada. Se o teste indicar que um determinado modo de codificação resulta em uma quantidade excessiva de bits de codificação a serem alocados para se obter uma quantidade de distorção máxima desejada, a unidade de seleção de modo 40 pode selecionar o modo de PCM quantizada. Como tal, mais propriamente do que realizar uma técnica de predição nos blocos de vídeo, conforme descrito acima, o codificador usaria a unidade de PCM quantizada 47 para realizar um processo de codificação de PCM quantizada em cada amostra (isto é, pixel) do bloco e transmitiria aqueles blocos codificados por PCM quantizada no fluxo de bis codificado de dados de vídeo.
[0064] O uso de codificação de PCM pode ser sinalizado para um decodificador de vídeo em um fluxo de bits de vídeo codificado. Um sinalizador de PCM (pcm_flag) pode ser sinalizado no nível de unidade de predição para indicar que codificação de PCM foi usada. Se o modo de predição for intra, o tamanho de partição é 2Nx2N, e o tamanho de bloco é maior do que ou igual ao tamanho de bloco de PCM mínimo, o pcm_flag é sinalizado. Observar que se pcm_flag for igual a um, então vários bits 0 podem ser sinalizados no fluxo de bits para enchimento até o início do próximo byte (por exemplo, para ter alinhamento de bytes). Elementos de sintaxe adicionais com relação à codificação de PCM podem ser sinalizados no conjunto de parâmetro de sequência (SPS). Por exemplo, elementos de sintaxe indicando a profundidade de bit de PCM (ou etapa de quantização) para ambos os componentes, luma e croma, dos pixels (por exemplo, pcm_bit_depth_luma_minus1 e pcm_bit_depth_chroma_minus1).
[0065] A Figura 3 mostra um diagrama de blocos da unidade de PCM quantizada 47 de acordo com um aspecto da revelação. Conforme mencionado acima, essa revelação apresenta técnicas para aplicar codificação de PCM quantizada às amostras de vídeo (isto é, pixels) em um bloco de dados de vídeo. Codificação de PCM quantizada pode ser obtida mediante introdução de uma etapa de quantização antes da codificação de PCM. Nesse contexto, a quantização é um processo de compactação pelo que valores de entrada em uma determinada profundidade de bits m (por exemplo, dados de pixel representados por 10 bits) são mapeados para um valor de saída com uma profundidade de bit menor n (por exemplo, 6 bits). Portanto, a profundidade de bits de entrada m é maior do que a profundidade de bits de saída n. O processo inerentemente envolve arredondamento de alguns dos valores de entrada, e como tal, introduz perda na compactação.
[0066] Conforme mostrado na Figura 3, amostras de vídeo são recebidas pela unidade de PCM quantizada 47 e são primeiramente quantizadas por uma unidade de quantização 49. Nesse caso, a quantização das amostras de vídeo define a profundidade de bits de saída eventual do vídeo codificado por PCM quantizada. Deve ser entendido que tal quantização de “domínio de pixel” (isto é, para definir a profundidade de bits) pode ser usada para quantizar os valores de entrada de pixels, e é diferente do parâmetro de quantização de “domínio de transformada” (QP) que é usado tipicamente para quantizar coeficientes residuais de transformada, tal como mediante a unidade de quantização de transformada 54 mostrada na Figura 2. As amostras de entrada podem ser quantizadas pela unidade de quantização 49 utilizando essa etapa de quantização de domínio de pixel para definir a profundidade de bits de saída. Conforme será discutido em mais detalhe com referência às Figuras 5-6, um decodificador pode quantizar inversamente as amostras codificadas utilizando a etapa de quantização e um deslocamento de arredondamento. O deslocamento de arredondamento pode ser especificado pelo codificador no fluxo de bits ou imposto como sendo exatamente a metade da etapa de quantização (ou alguma outra fração especificada da etapa de quantização).
[0067] Uma unidade de seleção de etapa de quantização 53 pode ser configurada para selecionar a etapa de quantização. Alternativamente, a unidade de etapa de quantização 49 pode ser configurada para usar uma etapa de quantização predeterminada. A etapa de quantização predeterminada pode ser armazenada na memória de seleção de etapa de quantização 55. A unidade de seleção de etapa de quantização 53 pode selecionar a etapa de quantização com base em qualquer um de uma variedade de critérios, incluindo características do bloco de dados de vídeo a serem codificados pelo processo de PCM quantizada ou características de blocos de dados de vídeo espacialmente próximos ao bloco de dados de vídeo a ser codificado no processo de PCM quantizada.
[0068] Por exemplo, a etapa de quantização pode ser selecionada para produzir dados de vídeo codificado que satisfaça uma quantidade máxima de dados permitidos para uma determinada função. Uma etapa de quantização superior, e assim uma profundidade de bits de saída menor, resultará em dados codificados por PCM quantizada de um tamanho de dados inferior. Inversamente, uma etapa de quantização inferior, e assim uma profundidade de bits de saída maior, resultará em dados codificados por PCM quantizada de um tamanho de dados superior. Como tal, a etapa de quantização pode ser um parâmetro selecionável que define a profundidade de bits de saída. A etapa de quantização pode estar no formato da própria profundidade de bits de saída, ou pode ser indicada como um número de desvios à direita usados para realizar a quantização que então resulta em uma amostra de vídeo codificada por PCM quantizada em uma determinada profundidade de bits de saída. Como será explicado abaixo, em mais detalhe, a etapa de quantização e/ou de profundidade de bits de saída pode ser indicada no fluxo de bits codificado de modo que o decodificador pode receber a etapa de quantização e/ou a profundidade de bits de saída e decodificar os dados de vídeo por PCM no fluxo de bits codificado.
[0069] Como outro exemplo, a etapa de quantização pode ser selecionada para reduzir a diferença de aparência entre os dados de vídeo codificados por PCM e os dados de perda produzidos pela codificação preditiva em blocos espacialmente adjacentes. Particularmente, a etapa de quantização pode ser selecionada de tal modo que uma quantidade de distorção apresentada pelos dados de vídeo codificados por PCM é similar à quantidade de distorção apresentada pelos dados de vídeo codificados de forma preditiva. A quantidade de distorção pode ser determinada pelo codificador 20 explicitamente ou estimada, por exemplo, com base em um parâmetro de quantização (QP) usado pela unidade de quantização de transformada 54 para dados de vídeo codificados de forma preditiva.
[0070] Outros critérios que podem ser usados pela unidade de seleção de etapa de quantização 53 para selecionar a etapa de quantização incluem a resolução espacial de quadros, a quantização (QP) para a unidade de codificação pertinente, a estrutura de codificação de uma unidade de codificação pertinente, taxa de quadros, o tipo de quadros (por exemplo, quadro intra (I) ou inter (P ou B), a profundidade de bits dos dados de entrada, dados internos ou dados de saída, a aplicação de vídeo específica, ou o nível ou o perfil no qual a sequência de vídeo pertinente é codificada.
[0071] A qualidade desejada do bloco de PCM é relacionada à qualidade global de um quadro específico. Quanto melhor for a qualidade (por exemplo, tipo de quadro, profundidade de bit) do quadro, mais qualidade é desejada para o modo de PCM. Além disso, se a resolução for muito ampla e o bloco de PCM for pequeno, há muito menos impacto visual do que do outro modo. Como um exemplo, o vídeo para aplicações de conferência de vídeo é tipicamente de PCM de qualidade inferior ao vídeo para DVDs. Além disso, há uma maior necessidade em conferência de vídeo para reduzir os bits gastos de PCM. A consideração de combinações desses critérios pode produzir melhores resultados do que a consideração de um único critério.
[0072] Em cada um desses exemplos, as etapas de quantização podem ser selecionadas com base em um algoritmo executado pela unidade de seleção de etapa de quantização 53. Como outro exemplo, múltiplas etapas de quantização predeterminadas que são apropriadas para diferentes situações contextuais podem ser armazenadas em uma memória de seleção de etapa de quantização 55 que pode ser acessada pela unidade de seleção de etapa de quantização 53.
[0073] Em um exemplo, a unidade de quantização 49 pode realizar quantização nas amostras de vídeo simplesmente mediante desvio à direita dos dados de entrada. O processo de quantização de desvio à direita, na realidade, descarta os bits menos significativos de cada uma das amostras de entrada (isto é, pixels). Nesse exemplo, a etapa de quantização pode ser fornecida à unidade de quantização 49 pela unidade de seleção de etapa de quantização 53 como um número inteiro que indica a quantidade de desvio à direita. Por exemplo, um desvio à direita dos dados de entrada por 2 é o mesmo que dividir por 4. Com uma entrada de pixel de 8 bits, um desvio à direita de dados de entrada por 2 implicaria em uma quantidade máxima de dados que é 75% inferior, isto é, de 8 bits por amostra até 6 bits por amostra. Em outro exemplo, um deslocamento é adicionado ao valor de pixel antes de aplicar o desvio à direita. Em outro exemplo, a quantização (ou desvio à direita) e realizada pela unidade de quantização 49 pode se basear na profundidade de bits das amostras de vídeo de entrada. Quanto maior for a profundidade de bits da amostra de vídeo de entrada, mas ela pode ser quantizada sem artefatos perceptíveis. Portanto, a unidade de seleção de etapa de quantização 53 pode ser configurada para selecionar uma etapa de quantização maior para dados de entrada de 10 bits do que seria para os dados de entrada de 8 bits.
[0074] Após a quantização, a unidade de modulação de código de pulso 51 modula por código de pulso as amostras de vídeo quantizadas. O modo de PCM intra, convencional, para H.264 simplesmente passa os valores digitais dos pixels não compactados para o fluxo de bits codificado. Como tal, PCM intra para H.264 é sem perda. De acordo com essa revelação, a unidade de modulação de código de pulsos 51 modula os valores digitais das amostras de vídeo após quantização (isto é, uma forma de compactação de perda). Como tal, a etapa de quantização selecionada pela unidade de seleção de etapa de quantização 53 define a profundidade de bits de saída das amostras de vídeo codificadas pela unidade de modulação de código de pulso. Como declarado acima, em algumas circunstâncias a etapa de quantização pode estar no formato da própria profundidade de bits de saída, ou pode ser indicada como um número de desvios à direita que definem a profundidade de bits de saída.
[0075] A profundidade de bits de saída, deslocamento de arredondamento, e/ou etapa de quantização pode ser sinalizada pelo codificador como elementos de sintaxe no fluxo de bits codificado. Nesse contexto, elementos de sintaxe de sinalização no fluxo de bits codificados não requerem transmissão em tempo real de tais elementos a partir do codificador para um decodificador, mas mais propriamente significa que tais elementos de sintaxe são codificados no fluxo de bits e são tornados acessíveis ao decodificador em qualquer modo. Isso pode incluir transmissão em tempo real (por exemplo, em conferência de vídeo) assim como o armazenamento do fluxo de bits codificado em um meio legível por computador para uso futuro por um decodificador (por exemplo, em fluxo contínuo, transferência, acesso de disco, acesso de cartão, DVD, Blu-ray, etc.). Conforme mencionado acima, a etapa de quantização pode indicar a própria profundidade de bits de saída ou pode representar o número de desvios à direita que foram realizados para quantizar as amostras de vídeo de entrada. A etapa de profundidade de bit de saída ou de quantização pode ser sinalizada para o decodificador para que o decodificador aplique o processo apropriado para decodificar os dados codificados.
[0076] Em um exemplo, a etapa de quantização pode ser um valor predeterminado que é usado para todas as situações por ambos, codificador e decodificador. Em outro exemplo, como discutido acima, a unidade de seleção de etapa de quantização 53 pode determinar a etapa de quantização com base nas características dos blocos de vídeo de entrada e/ou blocos de vídeo circundantes. O decodificador pode inferir certo valor da etapa de quantização de dados de vídeo codificados por PCM quantizada com base nas mesmas características usadas pelo codificador para selecionar a etapa de quantização.
[0077] Como outro exemplo, a etapa de profundidade de bits de saída e/ou de quantização pode ser sinalizada para o decodificador no fluxo de bits codificado. Além disso, um deslocamento de arredondamento pode ser especificado pelo codificador no fluxo de bits ou pode ser predeterminado para ser metade da etapa de quantização (ou alguma outra fração especificada da etapa de quantização). Uma forma de sinalizar a etapa de profundidade de bit de saída, deslocamento de arredondamento, e/ou de quantização é mediante codificação de um elemento de sintaxe que indica a profundidade de bits das amostras de PCM quantizada. A Figura 3 ilustra a unidade de seleção da etapa de quantização 53 como codificando a etapa de quantização selecionada no fluxo de bits codificado. Contudo, esse processo pode ser realizado pela unidade de quantização 49, pela unidade de modulação de código de pulso 51, ou outra unidade da unidade de PCM quantizada 47 ou pelo codificador 20.
[0078] Em outro exemplo, o elemento de sintaxe pode ser enviado no cabeçalho de sequência, nível estabelecido de parâmetro de sequência (por exemplo, o nível estabelecido de parâmetro de imagem), em um nível de fatia ou em outros níveis de sintaxe no fluxo de bits codificado. A Figura 4 ilustra um fluxo de bits de vídeo codificado exemplar com um cabeçalho de sequência. O cabeçalho de sequência 67 inclui um elemento de sintaxe de profundidade de bits 65 que indica a profundidade de bit de saída do vídeo codificado por PCM quantizada. Como um exemplo, o elemento de sintaxe de profundidade de bit 65 pode ser um elemento de sintaxe de 4 bits que indica uma redução ou expansão de profundidade de bits a partir de 1 a 16 bits. Deve-se observar que elemento de sintaxe de qualquer comprimento pode ser escolhido para indicar a profundidade de bit de saída. No exemplo na Figura 4, o elemento de sintaxe 65 indica a profundidade de bit de saída das amostras codificadas e conseqüentemente, o processo a seguir no decodificador. O elemento de sintaxe também pode ser sinalizado em um conjunto de parâmetros de sequência (SPS), um conjunto de parâmetros de imagem (PPS), ou um cabeçalho de fatia.
[0079] Em outro exemplo, a própria etapa de quantização (por exemplo, um número de desvios à direita) pode ser sinalizada, pelo codificador para o decodificador, no cabeçalho de sequência, no cabeçalho de quadro, ou imediatamente após a sinalização do modo de PCM para a unidade de codificação, unidade de predição ou bloco. O codificador pode sinalizar a etapa de quantização no fluxo de bits quando o modo de PCM é sinalizado para o primeiro bloco onde o modo de PCM quantizada foi selecionado no quadro. O resto dos blocos de modo de PCM quantizada no quadro assumiria a mesma etapa de quantização conforme sinalizada para o primeiro bloco de modo de PCM no quadro.
[0080] Em outro exemplo, os blocos de modo de PCM quantizada, subsequentes encontrados em um quadro podem sinalizar um delta da etapa de quantização usada para aquele bloco a partir de uma etapa de quantização de linha de base. Em alguns exemplos, a quantização de linha de base pode ser a etapa de quantização usada no bloco anterior onde o modo de PCM quantizada foi usado. Nesse exemplo, a etapa de quantização de linha de base seria a primeira etapa de quantização sinalizada no fluxo de bits para o primeiro bloco para o qual a PCM quantizada foi usada. Então, a etapa de quantização para cada um dos subsequentes blocos de modo de PCM no quadro pode ser sinalizada como um valor delta em relação à etapa de quantização previamente sinalizada.
[0081] Portanto, cada bloco de modo de PCM em um quadro ou fatia pode ter uma etapa de quantização que é explicitamente sinalizada em uma base individual para o bloco, compartilha a mesma etapa de quantização inicialmente sinalizada para um primeiro bloco de modo de PCM em um quadro ou fatia, ou tem uma etapa de quantização que é sinalizada por um delta em relação à etapa de quantização inicialmente sinalizada para um primeiro bloco de modo de PCM em um quadro ou fatia.
[0082] Deve-se observar que, embora mostrado como unidades funcionais separadas com o propósito de ilustração, a estrutura e a funcionalidade da unidade de quantização 49, a unidade de modulação de código de pulso 51, a unidade de seleção de etapa de quantização 53, e a memória de seleção de etapa de quantização 55 podem ser altamente integradas entre si.
[0083] A Figura 5 é um diagrama de blocos ilustrando um exemplo de um decodificador de vídeo 30, o qual decodifica uma sequência de vídeo codificado. No exemplo da Figura 5, o decodificador de vídeo 30 inclui uma unidade de decodificação de entropia 70, uma unidade de decodificação de PCM quantizada 71, uma unidade de compensação de movimento 72, uma unidade de intra-predição 74, uma unidade de quantização de transformada inversa 76, uma unidade de transformação inversa 78, um armazenador de quadros de referência 82 e um somador 80. O decodificador de vídeo 30 pode, em alguns exemplos, realizar uma passagem de decodificação geralmente recíproca à passagem de codificação descrita com relação ao codificador de vídeo 20 descrito com referência à Figura 2. A unidade de compensação de movimento 72 pode gerar dados de predição com base em vetores de movimento recebidos a partir da unidade de decodificação de entropia 70. A unidade de intra-predição 74 pode gerar dados de predição para um bloco atual de um quadro atual com base em um modo de intra-predição sinalizado e dados a partir dos blocos previamente decodificados do quadro atual.
[0084] Em alguns exemplos, a unidade de decodificação de entropia 70 (ou a unidade de quantização de transformada inversa 76) pode explorar os valores recebidos utilizando uma varredura reproduzindo em espelho a ordem de varredura usada pela unidade de codificação de entropia 56 (ou a unidade de quantização de transformada 54) do codificador de vídeo 20. Embora a varredura de coeficientes possa ser realizada na unidade de quantização de transformada inversa 76, a varredura será descrita com o propósito de ilustração como sendo realizada pela unidade de decodificação de entropia 70. Além disso, embora mostrado como unidades funcionais separadas para facilidade de ilustração, a estrutura e a funcionalidade da unidade de decodificação de entropia 70, a unidade de quantização de transformada inversa 76, e outras unidades do decodificador de vídeo 30 podem ser altamente integradas entre si.
[0085] A unidade de decodificação de entropia 70 pode ser configurada para aplicar a ordem de varredura para converter o vetor 1D de coeficientes de transformada em um arranjo 2D de coeficientes de transformada. A unidade de decodificação de entropia 70 utiliza o inverso da ordem de varredura para realizar a varredura do vetor 1D para o arranjo 2D. O arranjo 2D de coeficientes de transformada produzido pela unidade de decodificação de entropia 70 pode ser quantizado e pode geralmente combinar com o arranjo 2D de coeficientes de transformada escaneados pela unidade de codificação de entropia 56 do codificador de vídeo 20 para produzir o vetor 1D de coeficientes de transformada.
[0086] A unidade de quantização de transformada inversa 76 quantifica de forma inversa, isto é, quantiza de forma inversa, os coeficientes de transformada quantizada provido no fluxo de bits e decodificada pela unidade de decodificação de entropia 70. O processo de quantização inversa pode incluir um processo convencional, por exemplo, similar aos processos propostos para HEVC ou definidos pelo padrão de decodificação H.264. O processo de quantização inversa pode incluir o uso de um parâmetro de quantização calculado pelo codificador de vídeo 20 para a unidade de codificação para determinar um grau de quantização e, similarmente, um grau de quantização inversa que deve ser aplicado. A unidade de quantização de transformada inversa 76 pode quantizar inversamente os coeficientes de transformada quer seja antes ou após os coeficientes serem convertidos a partir de um vetor 1D para um arranjo 2D.
[0087] A unidade de transformada inversa 76 aplica uma transformada inversa, por exemplo, uma DCT inversa, uma transformada inversa de números inteiros, uma KLT inversa, uma transformada rotacional inversa, uma transformada direcional inversa, ou outra transformada inversa. Em alguns exemplos, a unidade de transformada inversa 78 pode determinar uma transformada inversa com base na sinalização a partir do codificador de vídeo 20, ou mediante inferência da transformada a partir de uma ou mais características de codificação tal como tamanho de bloco, modo de codificação, ou semelhante. Em alguns exemplos, a unidade de transformada inversa 78 pode determinar uma transformada para aplicar ao bloco atual com base em uma transformada sinalizada no nó de raiz de uma árvore de quadratura para uma unidade de codificação maior incluindo o bloco atual. Em alguns exemplos, a unidade de transformada inversa 78 pode aplicar uma transformada inversa em cascata.
[0088] A unidade de compensação de movimento 72 produz blocos de movimento compensado, possivelmente realizando interpolação com base nos filtros de interpolação. Identificadores para os filtros de interpolação podem ser usados para estimação de movimento com precisão de subpixel podem ser incluídos nos elementos de sintaxe. A unidade de compensação de movimento 72 pode usar os filtros de interpolação conforme usados pelo codificador de vídeo 20 durante a codificação do bloco de vídeo para calcular valores interpolados para pixels de números inteiros secundários de um bloco de referência. A unidade de compensação de movimento 72 pode determinar os filtros de interpolação usados pelo codificador de vídeo 20 de acordo com a informação de sintaxe recebida e usar os filtros de interpolação para produzir blocos preditivos.
[0089] A unidade de compensação de movimento 72 e a unidade de intra-predição 74, em um exemplo HEVC, podem utilizar alguma da informação de sintaxe (por exemplo, provida por uma transformação quad-tree) para determinar os tamanhos das unidades de codificação maiores usadas para codificar quadro(s) da sequência de vídeo codificado, informação de divisão que descreve como cada unidade de codificação de um quadro da sequência de vídeo codificado é dividida (e similarmente, como as unidades de codificação secundária são divididas), modos indicando como cada divisão é codificada (por exemplo, intra-predição ou inter, e para intra-predição em um modo de codificação de intra- predição), ou um ou mais quadros de referência (e/ou listas de referência contendo identificadores para os quadros de referência) para cada unidade de predição codificada inter, e outra informação para decodificar a sequência de vídeo codificado.
[0090] O somador 80 combina os blocos residuais com os blocos de predição correspondentes gerados pela unidade de compensação de movimento 72 ou pela unidade de intra-predição 74 para formar blocos decodificados. Se desejado, um filtro de desblocagem também pode ser aplicado para filtrar os blocos decodificados para remover os artefatos de blocagem. Os blocos de vídeo decodificado são então armazenados no armazenador de quadros de referência 82, que proporciona blocos de referência para compensação de movimento subsequente e também produz vídeo decodificado para apresentação em um dispositivo de exibição (tal como o dispositivo de exibição 32 da Figura 1).
[0091] A unidade de decodificação de PCM quantizada 71 é configurada para decodificar o vídeo codificado quando o modo de PCM quantizada foi usado pelo codificador 20. A unidade de decodificação de PCM quantizada 71 em primeiro lugar demodula por código de pulso o vídeo codificado. A seguir, a unidade de decodificação de PCM quantizada 71 quantifica de forma inversa o vídeo demodulado por código de pulso utilizando a mesma etapa de quantização usada no processo de codificação e um deslocamento de arredondamento. A etapa de quantização pode ser diretamente sinalizada no fluxo de bits de vídeo codificado ou pode ser inferida a partir de uma profundidade de bit de saída que é sinalizada no fluxo de bits de vídeo codificado.
[0092] A Figura 6 mostra um diagrama de blocos ilustrando um exemplo da unidade de decodificação de PCM quantizada 71. A unidade de decodificação de PCM quantizada pode incluir uma unidade de demodulação de código de pulso 73, uma unidade de etapa de quantização inversa 75, uma unidade de seleção de etapa de quantização 77, e uma memória de seleção de etapa de quantização 79. Deve-se observar que, embora mostrada como unidades funcionais separadas para facilidade de ilustração, a estrutura e a funcionalidade da unidade de demodulação de código de pulso 73, a unidade de etapa de quantização inversa 75, a unidade de seleção de etapa de quantização 77, e a memória de seleção de etapa de quantização 79 podem ser altamente integradas entre si.
[0093] Inicialmente, a unidade de demodulação de código de pulso 73 demodula por código de pulso o vídeo codificado por PCM quantizada. Essa etapa essencialmente inverte a modulação de código de pulso aplicada pelo codificador. A seguir, a unidade de quantização inversa 75 quantifica de forma inversa o vídeo demodulado utilizando a mesma etapa de quantização usada para codificar vídeo assim como um deslocamento de arredondamento.
[0094] A unidade de seleção de etapa de quantização 77 pode recuperar um elemento de sintaxe indicando a profundidade de bit de saída e/ou etapa de quantização a partir do fluxo de bit codificado. Como um exemplo, conforme mostrado na Figura 4, a profundidade de bit de saída pode ser sinalizada como um elemento de sintaxe de 4 bits que indica uma redução ou expansão de profundidade de bit a partir de 1 a 16 bits. Em outro exemplo, a profundidade de bit de saída pode ser sinalizada explicitamente, mais propriamente do que indiretamente. Alternativamente, o decodificador pode inferir certo valor da etapa de quantização das amostras de PCM com base nos mesmos critérios ou características de vídeo usadas pelo codificador para selecionar a etapa de quantização, tal como a resolução espacial de quadro, a quantização (QP) para a unidade de codificação pertinente, a estrutura de codificação de uma unidade de codificação pertinente, ou o tipo de quadro (por exemplo, quadro intra (I) ou inter (P ou B), a profundidade de bits dos dados de entrada, dados internos ou dados de saída, a aplicação específica de vídeo, ou o nível do perfil no qual a sequência de vídeo é codificada. Como outro exemplo, a unidade de seleção de etapa de quantização 77 pode simplesmente acessar uma etapa de quantização predeterminada armazenada na memória de seleção de etapa de quantização 79.
[0095] Dada a etapa de quantização sinalizada, predeterminada ou inferida, a unidade de quantização inversa 75 pode realizar quantização inversa utilizando a etapa de quantização e um deslocamento de arredondamento sinalizado, inferido ou predeterminado. Para realizar quantização inversa, a unidade de quantização inversa 75 pode simplesmente adicionar bits (isto é, um número igual de desvios à esquerda para o número de desvios à direita usados no codificador) para as amostras demoduladas e aplicar o deslocamento de arredondamento selecionado para gerar o vídeo decodificado.
[0096] A Figura 7 é um fluxograma ilustrando um processo de codificação exemplar. O método 100 codifica blocos de vídeo de acordo com um processo de codificação de PCM quantizada descrito acima com referência às Figuras 24. No método 100, um codificador de vídeo 20 selecione uma etapa de quantização para definir uma profundidade de bits de saída (120). Com base nessa profundidade de bits de saída, o codificador de vídeo 20 realiza codificação de PCM quantizada (121). A primeira etapa da codificação de PCM quantizada é a de quantizar amostras de um bloco de dados de vídeo de acordo com a etapa de quantização selecionada (122). A etapa 122 pode incluir quantizar as amostras do bloco de dados de vídeo mediante execução de um número de desvios à direita das amostras do bloco de dados de vídeo, em que o número de desvios à direita se baseia na etapa de quantização. A seguir, o codificador de vídeo 20 modula mediante código de pulso as amostras quantizadas (124). Como uma etapa opcional, o codificador de vídeo 20 também pode gerar uma indicação da profundidade de bit de saída e sinalizar aquela indicação no fluxo de bits de vídeo codificado (126).
[0097] Conforme discutido acima, a profundidade de bits de saída é um parâmetro definível. A esse respeito, o mesmo pode ser definido pela seleção da etapa de quantização usada para o processo de quantização. A etapa de quantização pode ser um valor predeterminado ou pode ser selecionado com base em uma ou mais características dos dados de vídeo. Como outro exemplo, a etapa de quantização pode ser selecionada para reduzir a diferença de aparência entre os dados de vídeo codificados por PCM e os dados de perda produzidos pela codificação preditiva. Particularmente, a etapa de quantização pode ser selecionada de tal modo que uma quantidade de distorção apresentada pelos dados de vídeo codificados por PCM é similar à quantidade de distorção apresentada pelos dados de vídeo codificados de modo preditivo. A quantidade de distorção pode ser determinada explicitamente ou estimada, por exemplo, com base em um parâmetro de quantização (QP) usado pela unidade de quantização de transformada 54 para dados de vídeo codificados de forma preditiva. Outros critérios e características que podem ser usados para selecionar a etapa de quantização incluem a resolução espacial de quadro, a quantização (QP) para a unidade de codificação permanente, a estrutura de codificação de uma unidade de codificação pertinente, taxa de quadros, o tipo de quadros (por exemplo, quadro intra (I) ou inter (P ou B), a profundidade de bits dos dados de entrada, dados internos ou dados de saída, aplicação de vídeo específico, ou o nível ou o perfil no qual a sequência de vídeo pertinente é codificada. A etapa de quantização pode ser comum para múltiplos blocos de dados de vídeo ou pode ser selecionada para cada bloco individual de dados de vídeo.
[0098] A etapa 126 pode gerar uma indicação da profundidade de bits de saída e/ou a própria etapa de quantização e sinalizar aquela indicação em um fluxo de bits de dados de vídeo codificado. A indicação da profundidade de bits de saída e/ou etapa de quantização permite que um decodificador inverta o processo de quantização. Particularmente, a profundidade de bit de saída pode ser sinalizada em um cabeçalho de sequência como um elemento de sintaxe de 4 bits que indica uma resolução ou expansão de profundidade de bits de 1 a 16 bits. Além disso, a etapa 126 também pode sinalizar um deslocamento de arredondamento no fluxo de bits de vídeo para indicar a um decodificador como realizar o processo de quantização inversa. Se as etapas de quantização individuais forem usadas para diferentes blocos de dados de vídeo, o codificador 20 pode representar as etapas de quantização individual como valores delta em relação a uma etapa de quantização de base.
[0099] A Figura 8 é um fluxograma ilustrando um processo de decodificação exemplar. O método 150 decodifica os blocos de vídeo de acordo com um processo de decodificação de PCM quantizada descrito acima com referência às Figuras 5 e 6. No método 120, um decodificador de vídeo 30 determina em primeiro lugar uma etapa de quantização (160). A seguir, o decodificador de vídeo realiza um processo de decodificação de PCM quantizada 161. O processo de decodificação de PCM quantizada inclui decodificar o bloco de vídeo codificado com demodulação de código de pulso (162). A seguir, utilizando a etapa de quantização determinada e um deslocamento de arredondamento, o decodificador de vídeo 30 quantiza de forma inversa o bloco de vídeo demodulado.
[00100] Na etapa 160, a etapa de quantização pode ser determinada mediante uso de um valor pré-selecionado, mediante recebimento de uma indicação da profundidade de bits de saída e/ou etapa de quantização no fluxo de bits de saída, ou a partir de características dos próprios dados de vídeo da mesma maneira como selecionando a etapa de quantização no processo de codificação.
[00101] Em um ou mais exemplos, as funções descritas nessa revelação podem ser implementadas em hardware, software, firmware, ou qualquer combinação dos mesmos. Se implementado em software, as funções podem ser realizadas por uma unidade de processamento baseado em hardware, tal como um ou mais processadores, que executam o software na forma de instruções ou código legível por computador. Tais instruções ou código podem ser armazenados em, ou transmitidos através de um meio legível por computador e executados por uma unidade de processamento baseado em hardware. Os meios legíveis por computador podem incluir meios de armazenamento legíveis por computador, os quais correspondem a um meio tangível, não transitório tal como os meios de armazenamento de dados, ou meios de comunicação, incluindo qualquer meio que facilita a transferência de um programa de computador de um lugar para outro, por exemplo, de acordo com um protocolo de comunicação. Dessa maneira, meios legíveis por computador geralmente podem corresponder a (1) meios de armazenamento tangíveis legíveis por computador que não são transitórios ou (2) um meio de comunicação tal como um sinal ou onda portadora. Os meios de armazenamento de dados podem ser quaisquer meios disponíveis que podem ser acessados por um ou mais computadores ou um ou mais processadores para recuperar instruções, código e/ou estruturas de dados para implementação das técnicas descritas nessa revelação. Um produto de programa de computador pode incluir um meio legível por computador.
[00102] Como um exemplo, e não como limitação, tais meios de armazenamento legíveis por computador podem compreender RAM, ROM, EEPROM, memória Flash, CD-ROM ou qualquer outro meio de armazenamento de dados de estado sólido, ótico ou magnético, incluindo armazenamento de disco ótico, armazenamento de disco magnético, ou outros dispositivos de armazenamento magnético, ou qualquer outro meio que possa ser usado para armazenar código de programa desejado na forma de instruções ou estruturas de dados e que possam ser acessados por um computador. Além disso, qualquer conexão é propriamente denominada meio legível por computador. Por exemplo, se as instruções forem transmitidas a partir de um sítio de rede, servidor, ou outra fonte remota utilizando um cabo coaxial, cabo de fibras óticas, par trançado, linha de assinante digital (DSL), ou tecnologias sem fio tal como infravermelho, rádio e micro-ondas, então o cabo axial, cabo de fibras óticas, par trançado, DSL, ou tecnologias sem fio tais como infravermelho, rádio e micro-ondas são incluídos na definição de meio. Deve ser entendido, contudo, que meios de armazenamento tangíveis legíveis por computador e meios de armazenamento de dados não incluem conexões, ondas portadoras, sinais ou outros meios transientes, mas em vez disso são dirigidos a meios de armazenamento não transientes, tangíveis. Disco magnético e disco ótico, conforme aqui usado, incluem disco compacto (CD), disco a laser, disco ótico, disco digital versátil (DVD), disquete e disco Blu-ray, onde discos magnéticos normalmente reproduzem os dados magneticamente, enquanto que os discos óticos reproduzem os dados oticamente com lasers. Combinações dos mencionados acima também devem ser incluídas no escopo de meios legíveis por computador.
[00103] Instruções podem ser executadas por um ou mais processadores, tal como um ou mais processadores de sinal digital (DSPs), microprocessadores de uso geral, circuitos integrados de aplicação específica (ASICs), arranjos lógicos programáveis no campo (FPGAs), ou outros circuitos lógicos integrados ou discretos equivalentes. Consequentemente, o termo “processador”, conforme aqui usado pode se referir a qualquer uma da estrutura precedente ou qualquer outra estrutura adequada para implementação das técnicas aqui descritas. Além disso, em alguns aspectos, a funcionalidade aqui descrita pode ser provida dentro de módulos de hardware e/ou software, dedicados configurados para codificar e decodificar, ou incorporados em um codec combinado. Além disso, as técnicas poderiam ser completamente implementadas em um ou mais circuitos ou elementos lógicos.
[00104] As técnicas dessa revelação podem ser realizadas por uma ampla variedade de dispositivos ou aparelhos, incluindo desktops, computadores notebook (isto é, laptop), computadores tablet, aparelhos de conversão de sinais de frequência, aparelhos telefônicos tais como os assim chamados smartphones, televisões, câmeras, dispositivos de exibição, aparelhos de reprodução de mídias digitais, consoles de jogos de vídeo ou semelhantes. Em muitos casos, tais dispositivos podem ser equipados para comunicação sem fio. Além disso, tais técnicas podem ser implementadas por um circuito integrado (IC) ou um conjunto de ICs (por exemplo, um conjunto de chips). Um dispositivo configurado para realizar as técnicas dessa revelação pode incluir qualquer um dos dispositivos mencionados acima e, em alguns casos, pode ser um codificador de vídeo ou decodificador de vídeo, ou codificador/decodificador de vídeo combinados, isto é, um codec de vídeo, o qual pode ser formado por uma combinação de hardware, software, e firmware. Vários componentes, módulos ou unidades podem ser descritos nessa revelação para enfatizar aspectos funcionais dos dispositivos configurados para realizar as técnicas reveladas, mas não requerem necessariamente a realização por unidades de hardware diferentes. Mais propriamente, conforme descrito acima, as várias unidades podem ser combinadas em uma unidade de hardware de codec ou providas mediante um agrupamento de unidades de hardware de operação interligada, incluindo um ou mais processadores como descrito acima, em conjunto com software e/ou firmware adequado.
[00105] Várias modalidades da invenção foram descritas. Essas e outras modalidades estão dentro do escopo das reivindicações a seguir.
Claims (14)
1. Método para codificar dados de vídeo, o método compreendendo: codificar um ou mais blocos de quadros de dados de vídeo utilizando codificação intra-preditiva em relação a um ou mais blocos vizinhos no mesmo quadro; e codificar amostras de um ou mais outros blocos de pixels do quadro de dados de vídeo, o método caracterizado por usar um modo de PCM quantizada de acordo com uma profundidade de bits de saída na qual as amostras do um ou mais outros blocos de pixels são quantizados de acordo com uma etapa de quantização, em que a etapa de quantização é selecionada de modo que uma quantidade de distorção apresentada pelos dados de vídeo codificados por PCM seja similar à quantidade de distorção apresentada pelos dados de vídeo codificados preditivamente antes da aplicação do codificação por PCM, a codificação por PCM sendo codificação de valores de pixel sem predição, codificação de transformação e codificação de entropia.
2. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que a profundidade de bit de saída é um parâmetro definível.
3. Método, de acordo com a reivindicação 2, caracterizado pelo fato de que compreende ainda: selecionar a etapa de quantização para as amostras quantizadas para definir a profundidade de bit de saída.
4. Método, de acordo com a reivindicação 3, caracterizado pelo fato de que a etapa de quantização é baseada na profundidade de bits das amostras de entrada, de modo que para uma profundidade de bits maior das amostras de entrada, uma etapa de quantização maior seja usada.
5. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que quantizar as amostras do bloco de dados de vídeo de acordo com uma etapa de quantização compreende um número de desvios à direita das amostras do bloco de dados de vídeo, em que o número de desvios à direita é baseado na etapa de quantização.
6. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que codificar as amostras de um bloco de dados de vídeo utilizando a modulação de código de pulso quantizada compreende: quantizar as amostras de múltiplos blocos de dados de vídeo de acordo com uma etapa de quantização comum; e modular por código de pulso as amostras quantizadas nos múltiplos blocos de dados de vídeo.
7. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que codificar as amostras de um bloco de dados de vídeo utilizando modulação de código de pulso quantizada compreende: quantizar amostras de um primeiro bloco de dados de vídeo de acordo com uma primeira etapa de quantização; quantizar amostras de um segundo bloco de dados de vídeo de acordo com uma segunda etapa de quantização diferente da primeira etapa de quantização; e modular por código de pulso as amostras quantizadas no primeiro e segundo blocos de dados de vídeo.
8. Método, de acordo com a reivindicação 7, caracterizado pelo fato de que compreende ainda: representar a primeira etapa de quantização e a segunda etapa de quantização como valores delta em relação a uma etapa de quantização de base.
9. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que compreende ainda: gerar uma indicação da profundidade de bit de saída e incluir a indicação em um fluxo de bits codificado.
10. Método, de acordo com a reivindicação 9, caracterizado pelo fato de que compreende ainda: incluir a indicação da profundidade de bit de saída em um cabeçalho de sequência como um elemento de sintaxe.
11. Método para decodificar dados de vídeo, o método compreendendo: decodificar um ou mais bloco de um quadro de dados de vídeo utilizando codificação intra-preditiva em relação a um ou mais blocos vizinhos no mesmo quadro, e decodificar amostras de um ou mais outros blocos de pixels codificados do quadro de dados de vídeo que foram codificados com o modo de PCM quantizada de acordo com uma profundidade de bits de saída, o método caracterizado pelo fato de que as amostras do um ou mais outros blocos de pixels são quantizadas de acordo com uma etapa de quantização, em que a etapa de quantização é selecionada de modo que uma quantidade de distorção apresentada pelos dados de vídeo codificados por PCM seja similar à quantidade de distorção apresentada pelo dado de vídeo codificado preditivamente antes da aplicação da codificação por PCM, a codificação por PCM sendo codificação valores de pixel sem predição, código de transformação e código de entropia.
12. Aparelho configurado para codificar dados de vídeo, o aparelho compreendendo: meios para codificar um ou mais blocos de um quadro de dados de vídeo utilizando codificação intra- preditiva em relação a um ou mais blocos vizinhos no mesmo quadro, e meios para codificar amostras do um ou mais outros blocos de pixels do quadro de dados de vídeo caracterizado pelo fato de que as amostras do um ou mais outros bloco pixels são quantizadas de acordo com uma etapa de quantização, em que a etapa de quantização é selecionada de modo que uma quantidade de distorção apresentada pelos dados de vídeo codificados por PCM seja similar à quantidade de distorção apresentada pelos dados de vídeo codificados preditivamente antes da aplicação da codificação por PCM, meios para o codificar por PCM as amostras quantizadas, a codificação por PMC sendo codificação de valores de pixel sem predição, codificação de transformação e codificação de entropia.
13. Aparelho configurado para decodificar dados de vídeo, o aparelho compreendendo: meios para decodificar um ou mais blocos de um quadro de dados de vídeo utilizando codificação intra- preditiva em relação a um ou mais blocos vizinhos no mesmo quadro, e meios para decodificar uma ou mais outras amostras de blocos de pixels codificados do quadro de dados de vídeo usando demodulação por código de pulso que foram codificados com um modo de PCM quantizada de acordo com uma profundidade de bits de saída caracterizado pelo fato de que as amostras do um ou mais outros blocos de pixels são quantizadas de acordo com uma etapa de quantização, em que a etapa de quantização é selecionada de modo que uma quantidade de distorção apresentada pelos dados de vídeo codificados por PCM seja similar à quantidade de distorção apresentada pelos dados de vídeo codificados preditivamente antes da aplicação da codificação por PCM, a codificação por PMC sendo codificação de valores de pixel sem predição, codificação de transformação e codificação de entropia; e meios para quantizar inversamente as amostras decodificadas de acordo com uma etapa de quantização.
14. Memória caracterizada pelo fato de que compreende instruções armazenadas na mesma, as instruções sendo executadas por um processador de um dispositivo para codificação de vídeo para realizar o método, conforme definido em qualquer uma das reivindicações 1 a 11.
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201161449413P | 2011-03-04 | 2011-03-04 | |
US61/449,413 | 2011-03-04 | ||
US13/362,928 | 2012-01-31 | ||
US13/362,928 US10200689B2 (en) | 2011-03-04 | 2012-01-31 | Quantized pulse code modulation in video coding |
PCT/US2012/023497 WO2012121820A1 (en) | 2011-03-04 | 2012-02-01 | Quantized pulse code modulation in video coding |
Publications (2)
Publication Number | Publication Date |
---|---|
BR112013022516A2 BR112013022516A2 (pt) | 2016-12-06 |
BR112013022516B1 true BR112013022516B1 (pt) | 2022-04-19 |
Family
ID=46753282
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
BR112013022516-5A BR112013022516B1 (pt) | 2011-03-04 | 2012-02-01 | Modulação de código de pulso quantizada em codificação de vídeo |
Country Status (19)
Country | Link |
---|---|
US (1) | US10200689B2 (pt) |
EP (1) | EP2681914B1 (pt) |
JP (1) | JP5722468B2 (pt) |
KR (1) | KR101732767B1 (pt) |
CN (1) | CN103404144B (pt) |
AU (1) | AU2012226301B2 (pt) |
BR (1) | BR112013022516B1 (pt) |
CA (1) | CA2828556C (pt) |
DK (1) | DK2681914T3 (pt) |
ES (1) | ES2692183T3 (pt) |
HU (1) | HUE039796T2 (pt) |
IL (1) | IL227926A (pt) |
MX (1) | MX2013010148A (pt) |
MY (1) | MY164711A (pt) |
RU (1) | RU2578724C2 (pt) |
SG (1) | SG192741A1 (pt) |
SI (1) | SI2681914T1 (pt) |
UA (1) | UA109312C2 (pt) |
WO (1) | WO2012121820A1 (pt) |
Families Citing this family (56)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8548057B2 (en) | 2011-01-25 | 2013-10-01 | Microsoft Corporation | Video coding redundancy reduction |
EP2685719B1 (en) * | 2011-03-09 | 2019-10-30 | Panasonic Intellectual Property Corporation of America | Video image decoding device |
EP2685721B1 (en) * | 2011-03-09 | 2019-10-30 | Panasonic Intellectual Property Corporation of America | Video image encoding device |
KR102135841B1 (ko) * | 2011-05-10 | 2020-07-22 | 코닌클리케 필립스 엔.브이. | 높은 다이내믹 레인지 이미지 신호의 생성 및 처리 |
US20120320972A1 (en) * | 2011-06-16 | 2012-12-20 | Samsung Electronics Co., Ltd. | Apparatus and method for low-complexity optimal transform selection |
EP2774362B1 (en) * | 2011-11-03 | 2023-07-26 | Sun Patent Trust | Quantization parameter for blocks coded in the pcm mode |
US9706200B2 (en) | 2012-06-18 | 2017-07-11 | Qualcomm Incorporated | Unification of signaling lossless coding mode and pulse code modulation (PCM) mode in video coding |
US9749645B2 (en) * | 2012-06-22 | 2017-08-29 | Microsoft Technology Licensing, Llc | Coded-block-flag coding and derivation |
JP6115568B2 (ja) * | 2012-06-26 | 2017-04-19 | 日本電気株式会社 | 映像符号化装置、映像復号装置、映像符号化方法、映像復号方法およびプログラム |
KR20160054530A (ko) * | 2013-09-06 | 2016-05-16 | 미쓰비시덴키 가부시키가이샤 | 동화상 부호화 장치, 동화상 트랜스코드 장치, 동화상 부호화 방법, 동화상 트랜스코드 방법 및 동화상 스트림 전송 시스템 |
DK3047639T3 (en) | 2013-09-20 | 2018-10-15 | Vid Scale Inc | Video Codes and Methods to Provide 3D Lookup Table Encoding for Color Game Scalability |
TWI652937B (zh) * | 2013-10-07 | 2019-03-01 | Vid衡器股份有限公司 | 多層視訊編碼組合可調能力處理方法 |
JP6254294B2 (ja) * | 2013-10-14 | 2017-12-27 | 寰發股▲ふん▼有限公司HFI Innovation Inc. | Hevc範囲拡張の剰余差分パルス符号変調の方法 |
US9892084B2 (en) | 2013-12-10 | 2018-02-13 | Apple Inc. | Methods and apparatus for virtual channel allocation via a high speed bus interface |
US10459674B2 (en) * | 2013-12-10 | 2019-10-29 | Apple Inc. | Apparatus and methods for packing and transporting raw data |
US10477232B2 (en) | 2014-03-21 | 2019-11-12 | Qualcomm Incorporated | Search region determination for intra block copy in video coding |
US9830289B2 (en) | 2014-09-16 | 2017-11-28 | Apple Inc. | Methods and apparatus for aggregating packet transfer over a virtual bus interface |
US9971397B2 (en) | 2014-10-08 | 2018-05-15 | Apple Inc. | Methods and apparatus for managing power with an inter-processor communication link between independently operable processors |
US9749636B2 (en) * | 2014-10-24 | 2017-08-29 | Intel Corporation | Dynamic on screen display using a compressed video stream |
US9544069B2 (en) | 2014-11-21 | 2017-01-10 | Apple Inc. | Methods and apparatus for link training, initialization and management via a high speed bus interface |
US9716889B2 (en) * | 2014-12-09 | 2017-07-25 | Sony Corporation | Intra and inter-color prediction for Bayer image coding |
US10425659B2 (en) * | 2015-01-30 | 2019-09-24 | Qualcomm Incorporated | Coding escape pixels for palette coding |
US10042794B2 (en) | 2015-06-12 | 2018-08-07 | Apple Inc. | Methods and apparatus for synchronizing uplink and downlink transactions on an inter-device communication link |
US10244249B2 (en) * | 2015-09-21 | 2019-03-26 | Qualcomm Incorporated | Fixed point implementation of range adjustment of components in video coding |
US10085214B2 (en) | 2016-01-27 | 2018-09-25 | Apple Inc. | Apparatus and methods for wake-limiting with an inter-device communication link |
US10191852B2 (en) | 2016-02-29 | 2019-01-29 | Apple Inc. | Methods and apparatus for locking at least a portion of a shared memory resource |
US10191859B2 (en) | 2016-03-31 | 2019-01-29 | Apple Inc. | Memory access protection apparatus and methods for memory mapped access between independently operable processors |
CN105847758A (zh) * | 2016-05-18 | 2016-08-10 | 深圳市神州龙资讯服务有限公司 | 一种高清航拍图片高速实时传输方法 |
US10523867B2 (en) | 2016-06-10 | 2019-12-31 | Apple Inc. | Methods and apparatus for multi-lane mapping, link training and lower power modes for a high speed bus interface |
US10551902B2 (en) | 2016-11-10 | 2020-02-04 | Apple Inc. | Methods and apparatus for providing access to peripheral sub-system registers |
US10775871B2 (en) | 2016-11-10 | 2020-09-15 | Apple Inc. | Methods and apparatus for providing individualized power control for peripheral sub-systems |
US10346226B2 (en) | 2017-08-07 | 2019-07-09 | Time Warner Cable Enterprises Llc | Methods and apparatus for transmitting time sensitive data over a tunneled bus interface |
US10331612B1 (en) | 2018-01-09 | 2019-06-25 | Apple Inc. | Methods and apparatus for reduced-latency data transmission with an inter-processor communication link between independently operable processors |
US11792307B2 (en) | 2018-03-28 | 2023-10-17 | Apple Inc. | Methods and apparatus for single entity buffer pool management |
US11381514B2 (en) | 2018-05-07 | 2022-07-05 | Apple Inc. | Methods and apparatus for early delivery of data link layer packets |
US10430352B1 (en) | 2018-05-18 | 2019-10-01 | Apple Inc. | Methods and apparatus for reduced overhead data transfer with a shared ring buffer |
US10585699B2 (en) | 2018-07-30 | 2020-03-10 | Apple Inc. | Methods and apparatus for verifying completion of groups of data transactions between processors |
US10719376B2 (en) | 2018-08-24 | 2020-07-21 | Apple Inc. | Methods and apparatus for multiplexing data flows via a single data structure |
US10846224B2 (en) | 2018-08-24 | 2020-11-24 | Apple Inc. | Methods and apparatus for control of a jointly shared memory-mapped region |
WO2020056763A1 (en) * | 2018-09-21 | 2020-03-26 | Alibaba Group Holding Limited | Adaptive coding of video coding units based on coding block type |
US11825120B2 (en) * | 2019-02-28 | 2023-11-21 | Qualcomm Incorporated | Subblock coding by generalized intra prediction in video coding |
CA3137163C (en) * | 2019-04-24 | 2024-05-14 | Bytedance Inc. | Constraints on quantized residual differential pulse code modulation representation of coded video |
CN113796069B (zh) | 2019-05-01 | 2024-03-08 | 字节跳动有限公司 | 使用量化残差差分脉冲编解码调制编解码的帧内编解码视频 |
CN113785306B (zh) | 2019-05-02 | 2024-06-14 | 字节跳动有限公司 | 基于编解码树结构类型的编解码模式 |
EP3949387A4 (en) | 2019-05-02 | 2022-05-18 | ByteDance Inc. | SIGNALING IN A TRANSFORM JUMP MODE |
US11829303B2 (en) | 2019-09-26 | 2023-11-28 | Apple Inc. | Methods and apparatus for device driver operation in non-kernel space |
US11558348B2 (en) | 2019-09-26 | 2023-01-17 | Apple Inc. | Methods and apparatus for emerging use case support in user space networking |
GB2589066B (en) * | 2019-10-24 | 2023-06-28 | Advanced Risc Mach Ltd | Encoding data arrays |
US11606302B2 (en) | 2020-06-12 | 2023-03-14 | Apple Inc. | Methods and apparatus for flow-based batching and processing |
US11775359B2 (en) | 2020-09-11 | 2023-10-03 | Apple Inc. | Methods and apparatuses for cross-layer processing |
US11954540B2 (en) | 2020-09-14 | 2024-04-09 | Apple Inc. | Methods and apparatus for thread-level execution in non-kernel space |
US11799986B2 (en) | 2020-09-22 | 2023-10-24 | Apple Inc. | Methods and apparatus for thread level execution in non-kernel space |
US11818353B2 (en) * | 2021-05-13 | 2023-11-14 | Qualcomm Incorporated | Reduced complexity transforms for high bit-depth video coding |
CN113162731B (zh) * | 2021-05-26 | 2022-09-16 | 中南大学 | 混合数模广播通信方法 |
US11876719B2 (en) | 2021-07-26 | 2024-01-16 | Apple Inc. | Systems and methods for managing transmission control protocol (TCP) acknowledgements |
US11882051B2 (en) | 2021-07-26 | 2024-01-23 | Apple Inc. | Systems and methods for managing transmission control protocol (TCP) acknowledgements |
Family Cites Families (54)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5150432A (en) | 1990-03-26 | 1992-09-22 | Kabushiki Kaisha Toshiba | Apparatus for encoding/decoding video signals to improve quality of a specific region |
JP2507204B2 (ja) | 1991-08-30 | 1996-06-12 | 松下電器産業株式会社 | 映像信号符号化装置 |
JP3749752B2 (ja) | 1995-03-24 | 2006-03-01 | アイティーティー・マニュファクチャリング・エンタープライジズ・インコーポレーテッド | ブロック適応型差分パルスコード変調システム |
US5777679A (en) | 1996-03-15 | 1998-07-07 | International Business Machines Corporation | Video decoder including polyphase fir horizontal filter |
US6031575A (en) | 1996-03-22 | 2000-02-29 | Sony Corporation | Method and apparatus for encoding an image signal, method and apparatus for decoding an image signal, and recording medium |
JP3748088B2 (ja) | 1996-07-17 | 2006-02-22 | ソニー株式会社 | 画像処理装置および方法、並びに学習装置および方法 |
JP3263807B2 (ja) | 1996-09-09 | 2002-03-11 | ソニー株式会社 | 画像符号化装置および画像符号化方法 |
KR100303685B1 (ko) | 1996-09-30 | 2001-09-24 | 송문섭 | 영상 예측부호화 장치 및 그 방법 |
US6256347B1 (en) | 1996-12-17 | 2001-07-03 | Thomson Licensing S.A. | Pixel block compression apparatus in an image processing system |
WO1999033266A2 (en) | 1997-12-22 | 1999-07-01 | Koninklijke Philips Electronics N.V. | Embedding supplemental data in an encoded signal |
US7143432B1 (en) | 1999-10-01 | 2006-11-28 | Vidiator Enterprises Inc. | System for transforming streaming video data |
GB2364843A (en) | 2000-07-14 | 2002-02-06 | Sony Uk Ltd | Data encoding based on data quantity and data quality |
US7058677B1 (en) | 2001-07-17 | 2006-06-06 | Vixs, Inc. | Method and apparatus for selectible quantization in an encoder |
FI114071B (fi) | 2003-01-13 | 2004-07-30 | Nokia Corp | Kuvien käsitteleminen rajoitetulla bittimäärällä |
CN1795680B (zh) | 2003-03-03 | 2010-06-16 | 新加坡科技研究局 | 采用avc帧内预测以便对数字视频进行编码的方法和装置 |
US7403561B2 (en) | 2003-04-04 | 2008-07-22 | Avid Technology, Inc. | Fixed bit rate, intraframe compression and decompression of video |
US7979273B2 (en) * | 2003-07-25 | 2011-07-12 | Sennheiser Electronic Gmbh & Co. Kg | Method and apparatus for the digitization of and for the data compression of analog signals |
US8045614B2 (en) | 2005-05-11 | 2011-10-25 | Dolby Laboratories Licensing Corporation | Quantization control for variable bit depth |
EP1605706A2 (en) | 2004-06-09 | 2005-12-14 | Broadcom Corporation | Advanced video coding (AVC) intra prediction scheme |
US20060227871A1 (en) * | 2005-03-31 | 2006-10-12 | Madhukar Budagavi | Video thumbnail method |
US7634727B2 (en) | 2005-04-26 | 2009-12-15 | Microsoft Corporation | System for abstracting audio-video codecs |
KR20070024211A (ko) | 2005-08-26 | 2007-03-02 | 삼성전자주식회사 | 영상압축장치 및 방법 |
US20070110151A1 (en) | 2005-11-14 | 2007-05-17 | Ess Technology, Inc. | System and method for video frame buffer compression |
CN101356823A (zh) * | 2006-01-09 | 2009-01-28 | 马蒂亚斯·纳罗施克 | 混合视频编码中预测误差的自适应编码 |
JP5396711B2 (ja) | 2006-02-09 | 2014-01-22 | 日本電気株式会社 | 動画像復号装置、動画像復号方法及びプログラム |
CN102611892B (zh) | 2006-03-16 | 2014-10-08 | 华为技术有限公司 | 在编码过程中实现自适应量化的方法及装置 |
US8208545B2 (en) | 2006-06-01 | 2012-06-26 | Electronics And Telecommunications Research Institute | Method and apparatus for video coding on pixel-wise prediction |
JP4555257B2 (ja) | 2006-06-06 | 2010-09-29 | パナソニック株式会社 | 画像符号化装置 |
US8611418B2 (en) | 2006-11-30 | 2013-12-17 | Lsi Corporation | Decoding a progressive JPEG bitstream as a sequentially-predicted hybrid video bitstream |
JP5045950B2 (ja) * | 2006-12-14 | 2012-10-10 | 日本電気株式会社 | 映像符号化方法、映像符号化装置および映像符号化プログラム |
US8107751B2 (en) | 2007-03-16 | 2012-01-31 | Sharp Laboratories Of America, Inc. | DPCM with adaptive range and PCM escape mode |
KR20100014553A (ko) | 2007-04-25 | 2010-02-10 | 엘지전자 주식회사 | 비디오 신호의 인코딩/디코딩 방법 및 장치 |
EP2169962A4 (en) | 2007-07-17 | 2012-04-11 | Nippon Telegraph & Telephone | VIDEO CODING DEVICE AND METHOD, VIDEO CODING PROGRAM, AND RECORDING MEDIUM CONTAINING THE PROGRAM |
EP2183922A4 (en) | 2007-08-16 | 2011-04-27 | Nokia Corp | METHOD AND APPARATUSES FOR ENCODING AND DECODING AN IMAGE |
US9521433B2 (en) | 2007-09-06 | 2016-12-13 | Nec Corporation | Video encoding device, video decoding device, video encoding method, video decoding method, video encoding or decoding program |
US20090074315A1 (en) | 2007-09-19 | 2009-03-19 | Himax Technologies Limited | Method of image compression and device thereof |
CN101816182B (zh) | 2007-10-01 | 2012-11-21 | 夏普株式会社 | 图像编码装置、图像编码方法、图像编解码系统 |
US8406314B2 (en) | 2007-11-28 | 2013-03-26 | Sharp Laboratories Of America, Inc. | Two-dimensional DPCM with PCM escape mode |
TW201006251A (en) | 2008-07-30 | 2010-02-01 | Etron Technology Inc | Symbol-sharing differential pulse code modulator/demodulator, multiple differential pulse code modulator/demodulator, image encoding/decoding system and method thereof |
GB0817977D0 (en) | 2008-10-01 | 2008-11-05 | Craven Peter G | Improved lossy coding of signals |
KR20100079121A (ko) * | 2008-12-30 | 2010-07-08 | 주식회사 동부하이텍 | 이미지 인코더 및 이미지 인코딩 방법 |
US8934543B2 (en) | 2009-02-13 | 2015-01-13 | Blackberry Limited | Adaptive quantization with balanced pixel-domain distortion distribution in image processing |
EP2396969A4 (en) | 2009-02-13 | 2012-12-12 | Research In Motion Ltd | MODIFIED ENTROPIC CODING FOR IMAGES AND VIDEOS |
KR101196920B1 (ko) | 2009-04-08 | 2012-11-05 | 한국전자통신연구원 | 적응적 비트 심도 감소를 통한 부호화와 복호화 방법 및 그 장치 |
US8848788B2 (en) * | 2009-05-16 | 2014-09-30 | Thomson Licensing | Method and apparatus for joint quantization parameter adjustment |
TWI433542B (zh) * | 2009-05-25 | 2014-04-01 | Mstar Semiconductor Inc | 反量化處理方法與裝置 |
US9152875B2 (en) | 2009-06-11 | 2015-10-06 | Texas Instruments Incorporated | Preserving text quality in video encoding |
JP2011029998A (ja) | 2009-07-27 | 2011-02-10 | Sony Corp | 画像記録装置、画像記録方法、及びプログラム |
US8588801B2 (en) * | 2009-08-21 | 2013-11-19 | Qualcomm Incorporated | Multi-point equalization framework for coordinated multi-point transmission |
US9154798B2 (en) * | 2009-09-14 | 2015-10-06 | Thomson Licensing | Methods and apparatus for efficient video encoding and decoding of intra prediction mode |
EP3499883A3 (en) * | 2010-05-14 | 2019-08-14 | Interdigital VC Holdings, Inc | Methods and apparatus for intra coding a block having pixels assigned to groups |
US20110292247A1 (en) * | 2010-05-27 | 2011-12-01 | Sony Corporation | Image compression method with random access capability |
BR122022001405B1 (pt) | 2010-07-13 | 2023-01-10 | Nec Corporation | Dispositivo de decodificação de vídeo e método de decodificação de vídeo |
US8660375B2 (en) | 2011-02-22 | 2014-02-25 | Panasonic Corporation | Image coding method, image decoding method, image coding apparatus, image decoding apparatus, and image coding and decoding apparatus |
-
2012
- 2012-01-02 UA UAA201311694A patent/UA109312C2/ru unknown
- 2012-01-31 US US13/362,928 patent/US10200689B2/en active Active
- 2012-02-01 BR BR112013022516-5A patent/BR112013022516B1/pt active IP Right Grant
- 2012-02-01 SI SI201231389T patent/SI2681914T1/sl unknown
- 2012-02-01 MX MX2013010148A patent/MX2013010148A/es active IP Right Grant
- 2012-02-01 DK DK12702743.1T patent/DK2681914T3/en active
- 2012-02-01 EP EP12702743.1A patent/EP2681914B1/en active Active
- 2012-02-01 KR KR1020137026274A patent/KR101732767B1/ko active IP Right Grant
- 2012-02-01 RU RU2013144556/08A patent/RU2578724C2/ru active
- 2012-02-01 AU AU2012226301A patent/AU2012226301B2/en active Active
- 2012-02-01 HU HUE12702743A patent/HUE039796T2/hu unknown
- 2012-02-01 WO PCT/US2012/023497 patent/WO2012121820A1/en active Application Filing
- 2012-02-01 MY MYPI2013003000A patent/MY164711A/en unknown
- 2012-02-01 JP JP2013557720A patent/JP5722468B2/ja active Active
- 2012-02-01 CA CA2828556A patent/CA2828556C/en active Active
- 2012-02-01 SG SG2013061312A patent/SG192741A1/en unknown
- 2012-02-01 CN CN201280011666.6A patent/CN103404144B/zh active Active
- 2012-02-01 ES ES12702743.1T patent/ES2692183T3/es active Active
-
2013
- 2013-08-12 IL IL227926A patent/IL227926A/en active IP Right Grant
Also Published As
Publication number | Publication date |
---|---|
JP2014511649A (ja) | 2014-05-15 |
SI2681914T1 (sl) | 2018-10-30 |
AU2012226301B2 (en) | 2015-11-05 |
SG192741A1 (en) | 2013-09-30 |
DK2681914T3 (en) | 2018-11-12 |
MY164711A (en) | 2018-01-30 |
RU2578724C2 (ru) | 2016-03-27 |
HUE039796T2 (hu) | 2019-02-28 |
CN103404144A (zh) | 2013-11-20 |
IL227926A0 (en) | 2013-09-30 |
MX2013010148A (es) | 2013-10-01 |
KR101732767B1 (ko) | 2017-05-04 |
CN103404144B (zh) | 2017-08-29 |
JP5722468B2 (ja) | 2015-05-20 |
RU2013144556A (ru) | 2015-04-10 |
EP2681914B1 (en) | 2018-07-25 |
ES2692183T3 (es) | 2018-11-30 |
US20120224640A1 (en) | 2012-09-06 |
KR20130129459A (ko) | 2013-11-28 |
US10200689B2 (en) | 2019-02-05 |
AU2012226301A1 (en) | 2013-09-12 |
EP2681914A1 (en) | 2014-01-08 |
CA2828556C (en) | 2017-09-12 |
UA109312C2 (uk) | 2015-08-10 |
BR112013022516A2 (pt) | 2016-12-06 |
WO2012121820A1 (en) | 2012-09-13 |
CA2828556A1 (en) | 2012-09-13 |
IL227926A (en) | 2016-04-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
BR112013022516B1 (pt) | Modulação de código de pulso quantizada em codificação de vídeo | |
JP5960309B2 (ja) | マッピングされた変換と走査モードとを使用するビデオコード化 | |
KR101619004B1 (ko) | 인트라 예측 코딩에 있어서의 최빈 변환 | |
US9807403B2 (en) | Adaptive loop filtering for chroma components | |
KR101641808B1 (ko) | 비디오 코딩에서 적응 루프 필터 및 샘플 적응 오프셋에 대한 최대 코딩 유닛 (lcu) 또는 파티션-기반 신택스 | |
BR112021004492A2 (pt) | codificação por transformada múltipla adaptativa | |
US20110317757A1 (en) | Intra prediction mode signaling for finer spatial prediction directions | |
BR112014026750B1 (pt) | Codificação de parâmetro de quantização (pq) em codificação de vídeo | |
BR112020012101A2 (pt) | controle de parâmetro de quantificação para codificação de vídeo com quantificação à base de transformada/pixel conjunta | |
JP2016201808A (ja) | ビデオ・コーディングにおける非正方形変換ユニットおよび予測ユニット | |
BR112016015998B1 (pt) | Sinalização de resolução de vetor de movimento adaptativa para codificação de vídeo | |
BR112016000584B1 (pt) | Inicialização de parâmetro de rice para codificação de nível de coeficiente em processo de codificação de vídeo | |
BR112016021142B1 (pt) | Método e dispositivo de decodificação de dados de vídeo, método e dispositivo de codificação de dados de vídeo, e, memória legível por computador | |
EP2622864A1 (en) | Indicating intra-prediction mode selection for video coding | |
TW201626794A (zh) | 用於視訊寫碼中可適性顏色轉換之量化參數推導及偏移 | |
JP2013543713A (ja) | ビデオ符号化のための適応動きベクトル解像度信号伝達 | |
KR20170016994A (ko) | 일원화된 병합 모드 및 적응적 모션 벡터 예측 모드 후보 선택 | |
BRPI0919839B1 (pt) | Método, aparelho e mídia de armazenamento não transitória legível por computador para codificação de vídeo com macroblocos grandes | |
JP2015504294A (ja) | ビデオ・コーディングのための色データのデブロッキング | |
BR112021000225A2 (pt) | Sinalização de modo intra luma | |
RU2574831C2 (ru) | Унифицированный выбор кандидатов для режима слияния и адаптивного режима предсказания вектора движения |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
B15K | Others concerning applications: alteration of classification |
Ipc: H04N 19/124 (2014.01), H04N 19/176 (2014.01) |
|
B06F | Objections, documents and/or translations needed after an examination request according [chapter 6.6 patent gazette] | ||
B06U | Preliminary requirement: requests with searches performed by other patent offices: procedure suspended [chapter 6.21 patent gazette] | ||
B09A | Decision: intention to grant [chapter 9.1 patent gazette] | ||
B16A | Patent or certificate of addition of invention granted [chapter 16.1 patent gazette] |
Free format text: PRAZO DE VALIDADE: 20 (VINTE) ANOS CONTADOS A PARTIR DE 01/02/2012, OBSERVADAS AS CONDICOES LEGAIS. PATENTE CONCEDIDA CONFORME ADI 5.529/DF, QUE DETERMINA A ALTERACAO DO PRAZO DE CONCESSAO. |