BR112014026750B1 - Codificação de parâmetro de quantização (pq) em codificação de vídeo - Google Patents

Codificação de parâmetro de quantização (pq) em codificação de vídeo Download PDF

Info

Publication number
BR112014026750B1
BR112014026750B1 BR112014026750-2A BR112014026750A BR112014026750B1 BR 112014026750 B1 BR112014026750 B1 BR 112014026750B1 BR 112014026750 A BR112014026750 A BR 112014026750A BR 112014026750 B1 BR112014026750 B1 BR 112014026750B1
Authority
BR
Brazil
Prior art keywords
block
value
current
quantization
pqd
Prior art date
Application number
BR112014026750-2A
Other languages
English (en)
Other versions
BR112014026750A2 (pt
Inventor
Xianglin Wang
Vadim SEREGIN
Original Assignee
Qualcomm Incorporated
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Qualcomm Incorporated filed Critical Qualcomm Incorporated
Publication of BR112014026750A2 publication Critical patent/BR112014026750A2/pt
Publication of BR112014026750B1 publication Critical patent/BR112014026750B1/pt

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/124Quantisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/124Quantisation
    • H04N19/126Details of normalisation or weighting functions, e.g. normalisation matrices or variable uniform quantisers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

CODIFICAÇÃO DE PARÂMETRO DE QUANTIZAÇÃO (PQ) EM CODIFICAÇÃO DE VÍDEO. É descrito um método para codificar valores de parâmetro de quantização delta. Em um exemplo, um decodificador de vídeo pode receber um valor de parâmetro de quantização delta (PQd) para o bloco de quantização atual de dados de vídeo, em que o valor de PQd é recebido se ou não houver coeficientes de transformada não zero no bloco de quantização atual. Em outro exemplo, um decodificador de vídeo pode receber o valor de PQd para o bloco de quantização atual de dados de vídeo somente no caso de o Preditor de PQ para o bloco de quantização atual ter um valor de zero, e inferir o valor de PQd como sendo zero no caso de o Preditor de PQ para o bloco de quantização atual ter um valor não zero, e não haver coeficientes de transformada não zero no bloco de quantização atual.

Description

[0001] Este pedido reivindica o benefício dos: pedido provisório norte-americano N°. 61/639 015, depositado a 26 de abril de 2012; pedido provisório norte-americano N°. 61/646 821, depositado a 7 de maio de 2012; e pedido provisório norte-americano N°. 61/656 953, depositado a 7 de junho de 2012, o conteúdo inteiro de cada um dos quais é aqui incorporado à guisa de referência.
Campo da Invenção
[0002] Esta revelação refere-se à codificação de vídeo e, mais especificamente, a técnicas para codificação de parâmetros de quantização.
Descrição da Técnica Anterior
[0003] Capacidades de vídeo digital podem ser incorporadas a uma faixa de aparelhos, que inclui televisões digitais, sistemas de broadcast direto digitais, sistemas de broadcast sem fio, assistentes digitais pessoais (PDAs), computadores laptop ou de mesa, câmeras digitais, aparelhos de gravação digitais, executores de meios digitais, aparelhos de jogos de vídeo, consoles para jogos de vídeo, telefones celulares ou de rádio-satélite, aparelhos de teleconferência de vídeo e semelhantes. Os aparelhos de vídeo digitais implementam técnicas de compactação de vídeo, tais como as descritas nos padrões definidos pelo MPEG-2, MPEG-4, ITU-TH.263, ITU-TH.264-NEPG- 4 Parte 10, Codificação Avançada de Vídeo (AVC), o padrão de Codificação de Vídeo de Alta Eficácia (HEVC) atualmente em desenvolvimento, e extensões de tais padrões para transmitir, receber e armazenar informações de vídeo digital de maneira mais eficaz.
[0004] As técnicas de compactação de vídeo incluem predição espacial e/ou predição temporal para reduzir ou remover a redundância inerente a sequências de vídeo. Para codificação de vídeo baseada em blocos, um quadro ou fatia de vídeo pode ser particionada em blocos. Um quadro de vídeo pode ser alternativamente referido como uma imagem. Cada bloco pode ser também particionado. Os blocos em um quadro ou fatia intra-codificada (I) são codificados utilizando-se predição espacial com relação à amostras de referência em blocos vizinhos no mesmo quadro ou fatia. Os blocos em um quadro ou fatia inter-codificada (P ou B) podem utilizar predição espacial com relação à amostras de referência em blocos vizinhos no mesmo quadro ou fatia ou predição temporal com relação a amostras de referência em outros quadros de referência. A predição espacial ou temporal resulta em um bloco preditivo para um bloco a ser codificado. Os dados residuais representam diferença de pixel entre o bloco original a ser codificado, isto é, o bloco codificado e o bloco preditivo.
[0005] Um bloco inter-codificado é codificado de acordo com um vetor de movimento que indica um bloco de amostras de referência que forma o bloco preditivo, e os dados residuais que indicam 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 do domínio de pixel em um domínio de transformada, do que resultam coeficientes de transformada residuais que podem ser então quantificados. Os coeficientes de transformada quantificados inicialmente dispostos em um arranjo bidimensional, podem ser varridos em uma ordem específica de modo a se produzir um vetor unidimensional de coeficientes de transformada para codificação por entropia.
Sumário
[0006] Em geral, esta revelação descreve técnicas para codificar dados de vídeo. Em particular, esta revelação descreve técnicas para codificar valores de Parâmetro de Quantização delta (PQd) e identificar modos de codificação sem perdas de modo a se evitarem faltas de correspondência codificador/decodificador potenciais.
[0007] Em um exemplo, esta revelação descreve um método de decodificador de vídeo que compreende receber um valor de parâmetro de quantização delta (PQd) para o bloco de codificação atual de dados de vídeo, no qual o valor de PQd é recebido se ou não houver coeficientes de transformada não zero no bloco de quantização atual, determinar um valor de parâmetro de quantização (PQ) para o bloco de quantização atual com base no valor de PQd recebido e em um preditor de PQ, e decodificar o bloco de quantização atual utilizando o valor de PQ determinado.
[0008] Em outro exemplo, o método de decodificação de vídeo compreende receber um valor de PQd para o bloco de quantização atual de dados de vídeo somente no caso de o Preditor de PQ para o bloco de quantização atual ter um valor de zero, e inferir o valor de PQd como sendo zero no caso de o Preditor de PQ para o bloco de quantização atual ter um valor não zero e de não haver coeficientes de transformada não zero no bloco de quantização atual.
[0009] Em outro exemplo, esta revelação descreve um método de codificação de vídeo que compreende determinar um valor de PQ para o bloco de quantização atual de dados de vídeo, determinar um valor de PQd para o bloco de quantização atual com base no PQ e um Preditor de PQ e com base no QP e em um Preditor de PQ, gerar o valor de PQd, no qual o valor de PQd é sinalizado se ou não houver coeficientes de transformada não zero no bloco de quantização atual e codificar o bloco de quantização atual utilizando o valor de PQ determinado.
[0010] Em outro exemplo, o método de codificação de vídeo compreende gerar um valor de PQd para o bloco de quantização atual de dados de vídeo somente no caso de o Preditor de PQ para o bloco de quantização atual ter um valor de zero, e inferir o valor de PQd como sendo zero no caso de o Preditor de PQ para o bloco de quantização atual ter um valor não zero, e de não haver coeficientes de transformada não zero no bloco de quantização atual.
[0011] Esta revelação descreve também um codificador de vídeo, um decodificador de vídeo, equipamentos, aparelhos e meios passíveis de leitura por computador que armazenam instruções que podem ser configuradas para executar as técnicas para sinalizar coeficientes de transformada aqui descritas.
[0012] Os detalhes de um ou mais exemplos são apresentados nos desenhos anexos e na descrição seguinte. Outros recursos, objetos e vantagens serão evidentes com a descrição e os desenhos e com as reivindicações.
Breve Descrição dos Desenhos
[0013] A Figura 1 é um diagrama de blocos que mostra um sistema de codificação e decodificação de vídeo exemplar.
[0014] A Figura 2 é um diagrama conceptual que mostra um grupo de quantificações exemplar.
[0015] A Figura é um diagrama conceptual que mostra uma técnica de predição de parâmetros de quantização exemplar.
[0016] A Figura 4 é um diagrama conceptual que mostra um exemplo de sinalização de quantização delta quando um preditor de parâmetros de quantização é zero.
[0017] A Figura 5 é um diagrama conceptual que mostra um exemplo de sinalização de parâmetro de quantização delta quando um preditor de parâmetros de quantização é codificado no modo sem perdas.
[0018] A Figura 6 é um diagrama de blocos que mostra um codificador de vídeo exemplar.
[0019] A Figura 7 é um diagrama de blocos que mostra um decodificador de vídeo exemplar.
[0020] A Figura 8 é um fluxograma de um método de codificação de vídeo exemplar de acordo com as técnicas desta revelação.
[0021] A Figura 9 é um fluxograma que mostra um método de decodificação de vídeo exemplar de acordo com as técnicas desta revelação.
Descrição Detalhada da Invenção
[0022] Em geral, esta revelação descreve técnicas para codificar dados de vídeo. Em particular, esta revelação descreve técnicas para codificação de parâmetros de quantização (PQ) em um processo de codificação e/ou decodificação de vídeo.
[0023] Em conformidade com algumas propostas para o padrão HEVC, um bloco de vídeo pode compreender a maior unidade de codificação (LCU) que pode, ela mesma, ser subdividia em unidade de codificação (CUs) menores de acordo com os esquema de particionamento de transformação quad-tree e possivelmente particionada em unidades de predição (PUs) para fins de estimação de movimento e compensação de movimento. Esta revelação descreve técnicas para codificar alterações (isto é, deltas) em um parâmetro de quantização (isto é, o PQ delta ou PQd) para uma LCU, CU ou um grupo de quantificações (ou algum outro bloco ou grupo de blocos dimensionado como grande o bastante para que as alterações de quantização sejam suportadas). Neste caso, o PQ delta pode definir a alteração no PQ para o grupo de quantificações com relação ao valor predito do PQ para a LCU. Por exemplo, o valor de PQ predito para a LCU pode ser simplesmente o PQ do grupo de quantificações anterior (isto é, codificado anteriormente no fluxo de bits). Alternativamente, o valor de PQ predito pode ser determinado com base em regras. Por exemplo, as regar podem identificar um ou mais outros valores de PQ de outros grupos de quantificações, ou o valor de PQ médio que deve ser utilizado.
[0024] As técnicas atuais de sinalização de PQd no padrão HEVC apresentam determinados problemas quando utilizadas em conjunto com sinalização e modos de codificação sem perdas de parse. Conforme será discutido mais detalhadamente em seguida, em determinadas situações pode ocorrer falta de correspondência codificador/decodificador, particularmente quando a codificação sem perdas é utilizada. Sendo assim, esta revelação apresenta técnicas para codificação de PQd e no modo sem perdas de modo a se evitarem tais faltas de correspondência.
[0025] A Figura 1 é um diagrama de blocos que mostra um sistema de codificação e decodificação de vídeo 10 exemplar que pode ser configurado para utilizar técnicas para codificação de PQ de acordo com os exemplos desta revelação. Conforme mostrado na Figura 1, o sistema 10 inclui um aparelho de origem 12 que transmite vídeo codificado para um aparelho de destino 14 por meio de um canal de comunicação 16. Os dados de vídeo codificados podem ser também armazenados em um meio de armazenamento 34 ou em um servidor de arquivos 36 e podem ser acessados pelo aparelho de destino 14 conforme desejado. Quando armazenados no meio de armazenamento 34 ou no servidor de arquivos 36, o codificador de vídeo 20 pode enviar dados de vídeo codificados a outro aparelho, tal como uma interface com rede, um disco compacto (CD), um disco Blu-Ray ou de vídeo digital (DVD), um gravador ou aparelho com instalação de estampagem ou outros aparelhos, para armazenar os dados de vídeo codificados no meio de armazenamento. Da mesma maneira, um aparelho separado do decodificador de vídeo 30, tal como uma interface com rede, leitora de CD ou DVD ou semelhantes, pode recuperar os dados de vídeo codificados de um meio de armazenamento e fornecer os dados recuperados ao decodificador de vídeo 30.
[0026] O aparelho de origem 12 e o aparelho de destino 14 podem compreender qualquer um de uma ampla variedade de aparelhos, que incluem computadores de mesa, computadores notebook (isto é, laptop) computadores tablet, conversores set-top, aparelhos telefônicos tais como os chamados telefones inteligentes, televisões, câmeras, aparelhos de exibição, executores de meios digitais, consoles para jogos de vídeo; Em muitos caso, tais aparelhos podem ser equipados para comunicação sem fio. Consequentemente, o canal de comunicação 16 pode compreender um canal sem fio, um canal cabeado ou uma combinação de canais sem fio e cabeado adequada para transmissão de dados de vídeo codificados. Da mesma maneira, o servidor de arquivos 36 pode ser acessado pelo aparelho de destino 14 através de qualquer conexão com dados padrão, inclusive uma conexão com a Internet. Isto pode incluir um canal sem fio (uma conexão Wi-Fi, por exemplo), uma conexão cabeada (como, por exemplo, DSL, modem a cabo, etc.) ou uma combinação de ambos que seja adequada para acessar os dados de vídeo codificados armazenados em um servidor de arquivos.
[0027] As técnicas para codificação de PQ, de acordo com os exemplos desta revelação, podem ser aplicadas à codificação de vídeo em suporte à qualquer um de diversos aplicativos multimídia, tais como broadcast de televisão através do ar, transmissões de televisão a cabo, transmissões de televisão por satélite, transmissões de vídeo em fluxo contínuo, como, por exemplo, por meio 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 outros aplicativos. Em alguns exemplos, o sistema 10 pode ser configurado para suportar transmissão de vídeo unidirecional ou bidirecional para suporte de aplicativos tais como fluxo contínuo de vídeo, repetição de vídeo, broadcast de vídeo e/ou telefonia com vídeo.
[0028] No exemplo da Figura 1, o aparelho 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 aparelho de origem 12, a fonte de vídeo 18 pode incluir uma fonte tal com um aparelho de captação de vídeo, tal como uma câmara de vídeo, um arquivo de vídeo que contém vídeo previamente captado, uma interface de alimentação de vídeo para receber vídeo de um provedor de conteúdo de vídeo e/ou um sistema de gráficos de computador para gerar dados de gráfico de computador como o vídeo de origem um ou combinação de tais fontes. Como exemplo, se a fonte de vídeo 18 for uma câmera de vídeo, o aparelho de origem 12 e aparelho de destino 14 podem formar os chamados telefones com câmera ou telefones com vídeo, que podem ser providos, como, por exemplo, dentro de telefones inteligentes ou computadores tablet. Entretanto, as técnicas descritas nesta revelação podem ser aplicadas à codificação de vídeo em geral, e podem ser aplicadas a aplicativos sem fio e/ou cabeados ou a aplicativos nos quais os dados de vídeo codificados são armazenados em um disco local.
[0029] O vídeo captado, pré-captado ou gerado por computador pode ser codificado pelo codificador de vídeo 20. As informações de vídeo codificadas podem ser moduladas pelo modem 22 de acordo com o padrão de comunicação, tal como um protocolo de comunicação cabeado ou sem fio, e transmitido para o aparelho de destino 14 por meio do transmissor 24. O modem 22 pode incluir diversos misturadores, filtros, amplificadores ou outros componentes projetados para modulação de sinais. O transmissor 24 pode incluir circuitos projetados para transmitir dados, inclusive amplificadores, filtros e, no caso de comunicação sem fio uma ou mais antenas.
[0030] O vídeo, captado, pré-captado ou gerado por computador que é codificado pelo codificador de vídeo 20 pode ser também armazenado no meio de armazenamento 34 ou no servidor de arquivos 36 para consumo posterior. O meio de armazenamento 34 pode incluir discos Blu-Ray, DVDs, CD-ROMs, memória flash ou qualquer outro meio de armazenamento digital adequado para armazenar vídeo codificado. O vídeo codificado armazenado no meio de armazenamento 34 pode ser então acessado pelo aparelho de destino 14 para decodificação e repetição. Embora não mostrado na Figura 1, em alguns exemplos, o meio de armazenamento 34 e/ou o servidor de arquivos 36 podem armazenar a saída do transmissor 24.
[0031] 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 aparelho de destino 14, servidores de arquivos exemplares inclui um servidor Web (para um site da Web, por exemplo), um servidor FTP, aparelhos de armazenamento anexados à rede (NAS), uma unidade de disco local ou qualquer outro tipo de aparelho capaz de armazenar dados de vídeo codificados e transmiti-los para um aparelho de destino. A transmissão de dados de vídeo codificados do servidor de arquivos 36 pode ser uma transmissão em fluxo contínuo, uma transmissão por download, ou uma combinação de ambas. O servidor de arquivos 36 pode ser acessado pelo aparelho de destino 14 através de qualquer conexão com dados padrão, inclusive uma conexão com a Internet. Isto pode incluir um canal sem fio, (uma conexão Wi-Fi, por exemplo) uma conexão cabeada (como, por exemplo, DSL, modem a cabo, Ethernet, USB, etc.) ou uma combinação de ambos que seja adequada para acessar dados de vídeo codificados armazenados em um servidor de arquivos.
[0032] O aparelho de destino 14, no exemplo da Figura 1, inclui um receptor 26, um modem 28, um decodificador de vídeo 30 e uma aparelho de exibição 32. O receptor 26 do aparelho de destino 14 recebe informações através do canal 16, e o modem 28 e o modem demodula as informações de modo a se produzir um fluxo de bits demodulado para o decodificador de vídeo 30. As informações comunicadas através do canal 16 podem incluir diversas informações de sintaxe geradas pelo codificador de vídeo 20 para utilização pelo decodificador de vídeo 30 na decodificação de dados de vídeo. Tal sintaxe pode ser também incluída com os dados de vídeo codificados armazenados no meio de armazenamento 34 ou servidor de arquivos 36. Cada um do codificador de vídeo 20 e do decodificador de vídeo 30 pode fazer parte de um respectivo codificador-decodificador (CODEC) que seja capaz de codificar ou decodificar dados de vídeo.
[0033] O aparelho de exibição 32 pode ser integrado com o, ou externo ao, aparelho de destino 14. Em alguns exemplos, o aparelho de destino 14 pode incluir um aparelho de exibição integrado e ser também configurado para formar interface com um aparelho de exibição externo. Em outro exemplo, o aparelho de destino 14 pode ser um aparelho de exibição. Em geral, o aparelho de exibição 32 exibe os dados de vídeo decodificados ao usuário e pode compreender qualquer um de diversos aparelhos de exibição, tais como uma tela de cristal líquido (LCD), uma tela de plasma, uma tela de diodo emissor de luz orgânico (OLED) ou outro tipo de aparelho de exibição.
[0034] 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 um ou mais linhas de transmissões físicas ou qualquer combinação de meios sem fios e cabeados. O canal de comunicação 16 pode fazer parte de uma rede baseada em pacotes, tal como uma rede de área local, uma rede de área estendida ou uma rede global como a Internet. O canal de comunicação 16 representa geralmente qualquer meio de comunicação adequado ou coleção de meios de comunicação diferentes, para transmitir dados de vídeo do aparelho de origem 12 para o aparelho de destino 14, inclusive qualquer combinação adequada de meios cabeados e 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 do aparelho de origem 12 com o aparelho de destino 14.
[0035] O codificador de vídeo 20 e o decodificador de vídeo 30 podem funcionar de acordo com o padrão de compactação de vídeo, tal como o padrão de Codificação de Vídeo de Alta Eficácia (HEVC) atualmente em desenvolvimento pela Equipe de Colaboração Conjunta em Codificação de Vídeo (JCT-VC) do Grupo de Especialistas em Codificação de Vídeo I-TU (VCEG) e o Grupo de Especialistas em Imagens em Movimento ISSO-IEC (MPEG). Um rascunho do padrão HEVC referido como “Rascunho Operacional HEVC 7” ou “WD 7” é descrito no documento JCTVC-I1003, BROSS ET ALII, “Rascunho de Especificação de Texto de Codificação de Vídeo de Alta Eficácia (HEVC) 7”, Equipe de Colaboração Conjunta em Codificação de Vídeo JCT-VC” do ITU-T, SG16 WP3 e ISSO/IEC JTC 1/SC29/WG11, 9° Encontro: Genebra, Suíça, 27 de abril de 2012 a 7 de maio de 2012, que, datado de 25 de abril de 2013 pode ser baixado de http://phenix.it- sudparis.eu/jct/doc end user/documents/9 Geneva/wg11/JCTVC- I1003-v3.zip, cujo conteúdo inteiro é aqui incorporado à guisa de referência.
[0036] Um rascunho mais recente do padrão HEVC, referido como “Rascunho Operacional HEVC 10” ou “WD10”, é descrito no documento JCTVC-L1003v34, Bross ET ALII, “Rascunho de especificação de texto de codificação de vídeo de alta eficácia (HEVC 10)”, Equipe de Colaboração Conjunta em Codificação de Vídeo (JCT-VC) do ITU-T SG16 WP3 e ISO/IEC JC1/SC29/WG11, 12° Encontro: Genebra, CH, 14-23 de janeiro de 2013, o qual, datado de 25 de abril de 2013, pode ser baixado de http://phenix.int- evry/jct/doc end user/documents/12 Geneva/wg11/JCTVC-I1003- v34.zip. O conteúdo inteiro de HEVC WD10 é por este aqui incorporado à guisa de referência.
[0037] Embora não mostrado na Figura 1, Sob alguns aspectos, o codificador de vídeo 20 e o decodificador de vídeo 30 podem ser cada um integrados com um codificador e um decodificador de áudio e podem incluir unidades MUX-DEMUX apropriadas, ou outro hardware e software para processar a codificação tanto de áudio quanto de vídeo em um fluxo de dados comum ou um fluxo de dados separados. Se aplicável, em alguns exemplos, as unidades MUX-DEMUX podem conformar-se ao protocolo de multiplexador ITU H. 223, ou a outros protocolos, tais como o protocolo de datagrama de usuário (UDP).
[0038] O codificador de vídeo 20 e o decodificador de vídeo 30 podem ser, cada um, implementados, como qualquer um de diversos circuitos de codificador adequados, tais como um ou mais microprocessadores, processadores de sinais digitais (DSPs), circuitos integrados específicos de aplicativo (ASICs), arranjos de portas programáveis no campo (FPGAs), lógica discreta, software, hardware, firmware ou qualquer combinação deles. Quando as técnicas são implementadas parcialmente em software, um aparelho pode armazenar instruções para o software em um meio passível de leitura por computador não transitório adequado e executar as instruções em hardware utilizando um ou mais processadores para executar as técnicas desta revelação. Cada um do codificador de vídeo 20 e do decodificador de vídeo 30 pode ser incluído em um ou mais codificador ou decodificadores. Ou um ou outro dos quais pode ser integrado como parte de um codificador/decodificador (CODEC) combinado no respectivo aparelho.
[0039] O codificador de vídeo 20 pode implementar qualquer uma ou todas as técnicas desta revelação para codificação de PQ em um processo de codificação de vídeo. Da mesma maneira, o decodificador de vídeo 30 pode implementar qualquer uma ou todas estas técnicas para codificação de PQ em um processo de codificação de vídeo. Um codificador de vídeo, conforme descrito nesta revelação, pode referir-se a um codificador de vídeo ou a um decodificador de vídeo. Da mesma maneira, uma unidade de codificação de vídeo pode referir-se a um codificador de vídeo ou a um decodificador de vídeo. Da mesma maneira, a codificação de vídeo pode referir-se à codificação de vídeo ou decodificação de vídeo.
[0040] Em um exemplo da revelação, conforme será explicado mais detalhadamente em seguida, o codificador de vídeo 20 pode ser configurado para determinar um valor de parâmetro de quantização (PQ) para o bloco de quantização atual, determinar um valor de parâmetro de quantização delta (PQd) para o bloco de quantização atual de dados de vídeo com base no PQ e em um preditor de PQ, sinalizar o valor de PQd em que o valor de PQd é sinalizado se ou não houver coeficientes de transformada não zero no bloco de quantização atual e codificar o bloco de quantização atual utilizando o valor de PQ determinado.
[0041] Em outro exemplo, o codificador de vídeo 20 pode ser configurado para sinalizar o valor de PQd para o bloco de quantização atual de dados de vídeo somente no caso de o Preditor de PQ para o bloco de quantização atual ter um valor de zero e inferir o valor de PQd ser não zero como sendo zero no caso de o Preditor de PQ para o bloco de quantização atual ter um valor de não zero e de não haver coeficientes de transformada não zero no bloco de quantização atual.
[0042] Da mesma maneira, o decodificador de vídeo 30 pode ser configurado para receber um valor de PQd para o bloco de quantização atual de dados de vídeo, em que o valor de PQd é recebido se ou não houver coeficientes de transformada não zero no bloco de quantização atual, determinar um valor de PQ para o bloco de quantização atual com base no valor de PQd recebido e em um Preditor de PQ e decodificar o bloco de quantização atual utilizando o valor de PQ determinado.
[0043] Em outro exemplo, o decodificador de vídeo 30 pode ser configurado para receber o valor de PQd para o bloco de quantização atual de dados de vídeo somente no caso de o Preditor de PQ para o bloco de quantização atual ter um valor de zero, e inferir o valor de PQd como sendo zero no caso de o Preditor de PQ para o bloco de quantização atual ter um valor não zero e não haver coeficientes de transformada não zero no bloco de quantização atual.
[0044] Os aparelhos de vídeo digital implementam técnicas de compactação de vídeo para codificar e decodificar informações de vídeo digital de maneira mais eficaz. A compactação de vídeo pode aplicar técnicas de predição espacial (intra-quadro) e/ou predição temporal (inter-quadro) para reduzir ou remover a redundância inerente a sequências de vídeo.
[0045] O JCT-VC está trabalhando no desenvolvimento do padrão HEVC, como, por exemplo, descrito no HEVC-WD10 discutido acima. Os esforços de padronização HEVC são baseados em um modelo de evolução de um aparelho de codificação de vídeo referido como Modelo de Teste HEVC (HM). O HM presume várias capacidades adicionais de aparelhos de codificação de vídeo com relação a aparelhos existentes de acordo com o ITU-T H.264/AVC, por exemplo. Por exemplo, ao passo que o H.264 apresenta nove modos de codificação intra-preditiva o HM pode apresentar o máximo de trinta e três modos de codificação intra-preditiva. A seção seguinte discutira determinados aspectos do HM mais detalhadamente.
[0046] Para a codificação de vídeo de acordo com o padrão HEVC, atualmente em desenvolvimento um quadro de vídeo pode ser particionado em unidades de codificação. Uma unidade de codificação (CU) refere-se geralmente a uma região de imagem que funciona como uma unidade básica à qual diversas ferramentas de codificação são aplicadas para compactação de vídeo. Uma CU tem usualmente um componente de luminância, denotado como Y e dois componentes de crominância, denotados U e V. Dependendo do formato de amostragem de vídeo, o tamanho dos componentes U e V, em termos de número de amostras, pode ser o mesmo ou diferente do tamanho do componente Y.
[0047] Uma CU é tipicamente quadrada, e pode ser considerada como sendo semelhante ao chamado macrobloco, utilizada, por exemplo, em outros padrões de codificação de vídeo tais como o ITU-T H.264. A codificação de acordo com alguns dos aspectos atualmente propostos do padrão HEVC em desenvolvimento será descrita neste pedido para fins de exemplificação. Entretanto, as técnicas descritas nesta revelação podem ser úteis em outros processos de codificação de vídeo, tais como os definidos de acordo com o H.264 ou outros processos de codificação de vídeo padrão ou patenteados.
[0048] De acordo com o HM uma CU pode incluir uma ou mais unidades de predição (PUs) e/ou uma ou mais unidades de transformada (TUs). Os dados de sintaxe dentro de um fluxo de bits pode definir a maior unidade de codificação (LCU), que é a maior CU em termos do número de pixels. Em geral, uma CU tem uma finalidade semelhante à de um macrobloco do H.264, exceto pelo fato de que uma CU não tem uma distinção de tamanho. Assim, uma CU pode ser dividida em sub-CUs. Em geral, as referências nesta revelação a uma CU podem referir-se à maior unidade de codificação de uma imagem ou a uma sub-CU de uma LCU. Uma LCU pode ser dividida em sub-CUs, e cada sub-CU pode ser também dividida em sub-CUs. Os dados de sintaxe para um fluxo de bits podem definir um número máximo de vezes em que uma LCU pode ser divida, referido como profundidade de CU. Por conseguinte, um fluxo de bits pode definir também a menor unidade de codificação (SCU). Esta revelação utiliza também o termo “bloco” ou “parte” para referir-se a qualquer uma de uma CU, uma PU ou uma TU. Em geral, “parte” pode referir-se a qualquer sub-conjunto de um quadro de vídeo.
[0049] Uma LCU pode ser associada a uma estrutura de dados de transformação quadtree. Em geral, uma estrutura de dados de transformação quad-tree inclui um nó por CU, onde um nó-raíz corresponde à LCU. Se uma CU for dividida em quatro sub-CUs, o nó que corresponde à CU inclui quatro nós-folha, cada um dos quais corresponde a uma das sub-CUs, cada nó da estrutura de dados de transformação quad-tree para prover dados de sintaxe para a CU correspondente. Por exemplo, um nó na transformação quad-tree pode incluir um indicador de divisão que indica se a CU correspondente ao nó é dividida em sub-CUs. Os elementos de sintaxe para uma CU podem ser definidos recursivamente e podem depender de a CU ser ou não dividida em sub-CUs. Se uma CU não for dividida adicionalmente, ela é referida como uma CU-folha.
[0050] Uma CU pode incluir uma ou mais unidades de predição (PUs). Em geral uma PU representa toda ou uma parte da CU correspondente e objeto da invenção dados para recuperar uma amostra de referência para a PU. Por exemplo, quando a PU é codificada de maneira intermodal, a PU pode incluir dados que definem um vetor de movimento para a PU. Os dados que definem o vetor de movimento podem descrever, por exemplo, um componente horizontal do vetor de movimento, um componente vertical do vetor de movimento, uma resolução para o vetor de movimento (precisão de um quarto de pixel ou precisão de um oitavo de pixel, por exemplo), um quadro de referência indicado pelo vetor de movimento e/ou uma lista de referência (lista 0 ou lista 1) para o vetor de movimento. Os dados para a CU que definem a(s) PU(s) podem descrever também, por exemplo, o particionamento da CU em uma ou mais PUs. Os modos de particionamento podem diferir dependendo de a CU ser não codificada, codificada no modo de intra-predição ou codificada no modo de inter-predição. Para intra codificação uma PU pode ser tratada da mesma maneira que uma unidade de transformada-folha pode ser descrita.
[0051] O padrão HEVC emergente proporciona transformações de acordo com unidades de transformada (Tus), que podem ser diferentes para CUs diferentes. As Tus são tipicamente dimensionadas com base no tamanho das PUs dentro de uma dada CU definida para uma LCU particionada, embora este nem sempre seja o caso. As Tus são tipicamente do mesmo tamanho ou menores que as PUs. Em alguns exemplos, as amostras residuais que correspondem a uma CU podem ser sub-divididas em unidades menores utilizando-se uma estrutura de transformação quad-tree, conhecida como “transformação quad-tree residual” (RQT). Os nós-folha da RQT podem ser referidos como unidades de transformada (TUs). Os valores de diferença de pixel associados às TUs podem ser transformados de modo a se produzirem coeficientes de transformada, que podem ser quantificados. Uma TU inclui um bloco de transformada luma e dois blocos de transformada croma. Sendo assim, qualquer processo de quantização discutido em seguida que seja aplicado a uma TU, pode ser, realmente, aplicado aos blocos de transformada luma e croma.
[0052] Em geral, uma PU refere-se a dados relacionados com o processo de predição. Por exemplo, quando a PU é codificada no modo intra a PU pode incluir dados que descrevem um modo de intra-predição para a PU. Como outro exemplo, quando a PU é codificada no modo inter, a PU pode incluir dados que definem um vetor de movimento para a PU.
[0053] Em geral, uma TU é utilizada nos processos de transformada e quantização. Uma dada CU que tem uma ou mais PUs pode incluir também uma ou mais unidades de transformada (TUs). Após a predição, o codificador de vídeo 20 pode calcular valores residuais a partir do bloco de vídeo identificado pelo nó de codificação de acordo com a PU. O nó de codificação é então atualizado para referir os blocos residuais em vez do bloco de vídeo original. Os valores residuais compreendem valores de diferença de pixel que podem ser transformados em coeficientes de transformada quantificados e varridos utilizando-se as transformadas e outras informações de transformada especificadas nas TUs de modo a se produzirem coeficientes de transformada serializados para codificação por entropia.
[0054] O nó de codificação pode ser mais uma vez ser atualizado de modo a referir-se a estes coeficientes de transformada serializados. Esta revelação utiliza tipicamente o termo “bloco de vídeo” para referir- se a um nó de codificação de uma CU. Em alguns casos específicos, esta revelação pode utilizar também o termo “bloco de vídeo” para referir-se a um bloco de árvore, isto é, uma LCU ou uma CU, que inclui um nó de codificação e PUs e Tus.
[0054] Uma sequência de vídeo inclui tipicamente uma série de quadros ou imagens de vídeo. Um grupo de imagens (GOP) compreende geralmente uma série de uma ou mais de imagens de vídeo. Um GOP presente invenção dados de sintaxe no cabeçalho do GOP, no cabeçalho de uma ou mais das imagens, ou em outro lugar, que descrevem várias imagens incluídas no GOP. Cada fatia de uma imagem pode incluir dados de sintaxe de fatia que descrevem um modo de codificação para a respectiva fatia. O codificador de vídeo 20 funciona tipicamente em blocos de vídeo dentro de fatias de vídeo individuais de modo a decodificar os dados de vídeo. Um bloco de vídeo pode corresponder a um nó de codificação dentro de uma CU. Os blocos de vídeo podem ter tamanhos fixos ou variáveis e podem diferir em tamanho de acordo com o padrão de codificação especificado.
[0055] Para codificar um bloco (uma unidade de predição de dados de vídeo, por exemplo) é primeiro derivado um preditor para o bloco. O preditor também referido como bloco preditivo pode ser derivado ou através de intra (I) predição (predição espacial) ou através de inter (P ou B) (isto é, predição temporal). Consequentemente algumas unidades de predição podem ser intra-codificadas (I) utilizando-se predição espacial com relação a amostras de referência em bloco de referência vizinhos no mesmo quadro (ou fatia) e outras unidades de predição podem ser inter-codificadas (P unidirecionalmente) ou inter-codificadas bidirecionalmente (B) conjunto de circuitos de recepção a blocos de amostras de referência em outros quadros (ou fatias) codificados anteriormente. Em cada caso, as amostras de referência podem ser utilizadas para formar um bloco preditivo para um bloco a ser codificado.
[0056] Mediante a identificação de um bloco preditivo é determinada a diferença entre os pixels no bloco de dados de vídeo original e os pixel no seu bloco preditivo. Esta diferença pode ser referida como dado residual de predição e indica as diferenças de pixel entre as valores de pixel no bloco a ser codificado e os valores de pixel no bloco preditivo selecionado para representar o bloco codificado. De modo a se obter melhor compactação, os dados residuais de predição podem ser transformados, utilizando-se uma transformada de co-seno discreta (DCT), uma transformada de número inteiro, uma transformada de Karhunen-Loeve (K-L, por exemplo), ou outra transformada para produzir coeficientes de transformada. Os dados residuais em um bloco de transformada, tal como em uma TU, podem ser dispostos em uma arranjo bidimensional (2D) de valores de diferença de pixel que reside no domínio de pixel espacial. Uma transformada converte os valores de pixel residuais em um arranjo bidimensional de coeficientes de transformada em um domínio de transformada, tal como um domínio de frequência.
[0058] A quantização pode ser aplicada aos coeficientes de transformada e envolve geralmente um processo que limita o número de bits associados a qualquer dado coeficiente de transformada. Mais especificamente, a quantização pode ser aplicada de acordo com um parâmetro de quantização (PQ). Em vez de se sinalizar o PQ propriamente dito, uma alteração (isto é, um delta) no PQ pode ser sinalizada com a LCU. O PQ delta define uma alteração no parâmetro de quantização para a LCU com relação ao valor predito para o PG para a LCU, tal como o PQ de uma CU comunicada anteriormente ou um PQ definido por PQs anteriores e ou uma ou mais regras. Esta revelação refere- se à geração e sinalização do PQ delta dentro de um fluxo de bits codificados de maneira que possa aperfeiçoar a qualidade (e possivelmente a compactação) no padrão HEVC.
[0059] Para compactação adicional, os coeficientes de transformada podem ser codificados antes da codificação por entropia. Um codificador por entropia aplica então codificação per entropia, tal como Codificação de Comprimento Variável Adaptativa ao Contexto (CAVLC), Codificação Aritmética Binária Adaptativa ao Contexto (CABAC), Codificação por Entropia com Particionamento de Intervalos de Probabilidade (PIPE) ou semelhantes aos coeficientes de transformada quantificados. Em alguns exemplos, o codificador de vídeo 20 pode utilizar uma ordem de varredura pré-definida para varrer os coeficientes de transformada quantificados de modo a produzir um vetor serializado que pode ser codificado por entropia. Em outros exemplos, o codificador de vídeo 20 pode efetuar uma varredura adaptativa. depois de varrer os coeficientes de transformada quantificados de modo a formar um vetor unidimensional, o codificador de vídeo 20 pode codificar por entropia o vetor unidimensional. O codificador de vídeo 20 pode também codificar por entropia os elementos de sintaxe associados aos dados de vídeo codificados para utilização pelo decodificador de vídeo 30 na decodificação dos dados de vídeo.
[0060] Conforme discutido acima, um PQ delta (também referido como PQd) pode ser sinalizado no fluxo de bits codificado para codificar o PQ para um bloco de dados de vídeo. O PQ delta é definido como a diferença entre o PA atual (isto é, o PQ real utilizado para o bloco atual) e um preditor do PQ atual (Preditor de PQ). Com base no PQD sinalizado, o valor de PQ atual correspondente pode ser reconstruído adicionando-se o PQd ao valor do Preditor de PQ, ou seja, no codificador de vídeo 20, o PQd é calculado subtraindo-se o Preditor de PQ do PQ real do bloco atual: PQd = PQ Atual - Preditor de PQ. No decodificador de vídeo 30 o PQ real do bloco atual é reconstruído adicionando-se o PQd recebido ao Preditor de PQ: PQ Atual = PQd + Preditor de PQ. Em alguns exemplos, o Preditor de PQ é definido como a média dos valores de PQ reais para o bloco acima e o bloco à esquerda do bloco atual.
[0061] De acordo com propostas para a HEVC e o HM, um Grupo de Quantificações (GQ) é definido para sinalizar o PQd. Um GQ é o tamanho de bloco mínimo no qual o PQd é sinalizado. Um G pode consistir em uma única CU ou em várias CUs. Em muitos casos, o GC pode ser menor que um ou mais tamanhos de CU possíveis. Por exemplo, um GQ pode ser definido e/ou sinalizado como sendo um tamanho de 16x16 pixels. Neste exemplo, seria possível ter CUs de tamanho 32x32 ou 64x64.
[0062] Em diversos exemplos, o tamanho de um GQ é sinalizado no conjunto de parâmetros de imagem (PPS). Entretanto, um tamanho de GQ pode ser sinalizado a outros níveis do fluxo de bits, inclusive um cabeçalho da fatia, um conjunto de parâmetros de adaptação (APS) um conjunto de parâmetros de sequência (SPS) e semelhantes. Se uma CU tem um tamanho igual ou maior que o tamanho do GQ o PQd pode ser sinalizado para tal CU. Entretanto, para CUs que são menores que o tamanho do GQ, um PQd comum é sinalizado e compartilhado entre todas as CUs no interior do GQ. Em alguns exemplos, propostos para a HEVC, a sinalização do PQd para um determinado bloco (CU ou GQ) depende também de haver ou não coeficientes não zero no bloco. O PQd é sinalizado em um bloco depois (e às vezes só depois) que o codificador de vídeo 20 determinar que há coeficientes não zero codificados no mesmo bloco.
[0063] A Figura 2 mostra um exemplo de GQ 16x16 que inclui 7 CUs (CU0-CU6). As CU-CU2 são CUs 8x8, enquanto as CU3-CU6 são CUs 4x4. No exemplo da Figura 2, a CU5 sombreada inclui pelo menos um coeficiente não zero. Sendo assim, o decodificador de vídeo 20 sinaliza um PQd para um GQ 102 inteiro, e o decodificador de vídeo 30 aplicaria o PQd sinalizado para utilização na decodificação de cada uma das CU0-CU6. Se nenhuma CU no GQ 102 incluísse um coeficiente não zero, um PQd não seria sinalizado para esse GQ. Nas propostas atuais para a HEVC, se ou não um PQd é sinalizado para um determinado bloco (uma CU, por exemplo) depende do tamanho do GQ.n Se o tamanho do GQ no exemplo da Figura 2 fosse 8x8, nenhum PQd seria sinalizado para as CU0-CU2, uma vez que elas não incluem coeficientes não zero. Entretanto, um PQd seria sinalizado para compartilhamento pelas CU3-CU6, uma vez que cada uma dessas CUs está dentro de um GQ que contém pelo menos um coeficiente não zero. Da mesma maneira, se o tamanho do GQ sinalizado fosse 4x4, nenhum PQd seria sinalizado para qualquer bloco exceto para a CU5 (isto é, o bloco que contém coeficientes não zero).
[0064] Em outras palavras, quando há várias CUs em um GQ, o PQd para o GQ não é sinalizado a menos que uma CU com coeficientes não zero seja localizada dentro GQ. Por exemplo, se houver quatro CUs em um GQ e nenhuma das três primeiras CUs tiver coeficiente não zero (também referidas como CUs não zero) exceto a quarta CU, o PQd só é sinalizado na quarta CU. Em geral, a primeira CU não zero em um GQ pode ser localizada em qualquer posição no interior do GQ. Por exemplo, a primeira CU não zero pode ser a primeira CU, a última CU ou qualquer outra em um GQ. Em alguns casos, nenhuma CU não zero pode estar presente em um GQ.
[0065] Na descrição seguinte, o termo geral “bloco de quantização” é utilizado para referir-se a uma CU que tem um tamanho maior ou igual a um GQ sinalizado, ou para referir-se a um GQ que contém várias CUs. Ou seja, um bloco de quantização é um GQ que contém uma ou mais CUs, ou uma CU que é maior que um GQ. O termo “bloco zero” será utilizado para indicar um bloco (uma Tu ou bloco de transformada associado a uma CU, por exemplo) que não tem coeficientes não zero. Quando um bloco de quantização é um GQ que contem várias CUs, o GQ é considerado um bloco zero quando todas as CUs no interior do GQ são blocos zero. O PQd é sinalizado para cada bloco de quantização quando o bloco de quantização contém pelo menos um coeficiente não zero.
[0066] Quando um PQd não é sinalizado para um bloco de quantização, supõe-se que o valor do PQd seja zero. Sendo assim, no decodificador de vídeo 30 o valor do PQ para o bloco atual seria igual ao valor do Preditor de PQ (isto é, PQ Atual = PQd + Preditor de PQ, onde supõe-se que o PQd seja zero). De acordo com as propostas atuais para a HEVC e o HM, o Preditor de PQ é definido como a média doa valores de PQ para o bloco de quantização esquerdo e o bloco de quantização acima, conforme mostrado na Figura 3 (isto é, mostrando-se a predição de PQ para o bloco de quantização atual utilizando-se os blocos de quantização esquerdo e acima). O Preditor de PQ pode ser definido de maneiras diferentes em outros exemplos. Por exemplo, o Preditor de PQ pode ser também definido como o valor de PQ do bloco de quantização esquerdo, definido como valor de PR do bloco de quantização quantificado anteriormente em um fluxo ou definido de outras maneiras.
[0067] Nas propostas atuais para a HEVC, é definido um modo de codificação sem perdas para codificar um bloco (uma ou mais CUs, por exemplo). De acordo com este modo de codificação sem perdas, algumas operações de codificação, tais como, transformada, quantização e filtragem na malha, são saltadas. Nas propostas atuais para a HEVC o modo de codificação sem perdas pode ser indicado pelo decodificador de vídeo 20 utilizando-se um valor de PR igual a zero para o bloco codificado pelo modo de codificação sem perdas. Assim, se um bloco de quantização específico for codificado no modo sem perdas, o valor de PQ para este bloco de quantização deve ser fixado em zero e sinalizado ao decodificador. Neste caso, a sinalização do valor de PQ é obtida através do envio de um PQd com um valor igual a menos valor de Preditor de PQ, isto é, PQd = PQ Real (zero neste caso) - Preditor de PQ.
[0068] Determinadas questões podem surgir quando a sinalização de PQd para um bloco de quantização é utilizada em conjunto com um modo de codificação sem perdas indicado com um valor de PQ de zero. Tais questões podem levar à falta de codificador/decodificador e, potencialmente a uma colisão do decodificador.
[0069] Para explicar a primeira questão, suponha-se que o Preditor de PQ derivado para o bloco de quantização atual seja zero. Por exemplo, o bloco de quantização esquerdo e o bloco de quantização acima são ambos codificados no modo de codificação sem perdas e, assim, cada um de um PQ de zero e assim cada um de um PQ de zero. O Preditor de PQ pode ser também zero no caso de um dos blocos de quantização esquerdo ou acima ser codificado no modo de codificação sem perdas e de o outro bloco de codificação de um PQ de 1. O Preditor de PQ, neste caso, é a média dos dois blocos, isto é, 0,5, e é arredondado para zero. Suponha-se também que o bloco de quantização atual seja normalmente (isto é, sem perdas) codificado utilizando-se um valor de PQ não zero. Sendo assim, a transformada, a quantização e todos os processos de filtragem na malha são aplicados ao bloco de quantização atual.
[0070] Neste caso, se o bloco de quantização for um bloco zero, (isto é, se não tiver coeficientes não zero) o codificador de vídeo 20 não sinalizaria o PQd para o decodificador de vídeo 30 para este bloco de quantização. Surge um problema em tal situação. No codificador de vídeo 20, este bloco de quantização exemplar é codificado utilizando-se um PQ não zero que utiliza intra ou inter- predição. Entretanto, sem sinalização de PQd, o valor de PQ inferido no lado do decodificador tem um valor de zero. Isto é porque o PQD não é sinalizado e, portanto, o PQd é inferido como sendo zero. Sendo assim, o PQ atual para o bloco de quantização seria o Preditor de PQ conforme explicado acima. Entretanto, uma vez que neste exemplo o Preditor de PQ é também zero, o valor de PQ atual para o bloco de quantização será também reconstruído como sendo zero, o que o decodificador de vídeo 30 interpretará como indicando que o bloco de quantização atual será decodificado no modo de codificação sem perdas. Sendo assim, o decodificador de vídeo 30 pode tentar reconstruir o bloco de quantização utilizando o modo sem perdas, embora tenha sido codificado utilizando-se outro modo de predição (inter ou intra-predição, por exemplo). Tal situação leva a uma falta de correspondência codificador/decodificador, que pode provocar qualidade visual precária ou mesmo colisão do decodificador.
[0071] Um segundo problema surge quando o Preditor de PQ para o bloco de quantização atual é não zero, mas o bloco de quantização atual é quantificado com o modo sem perdas e não tem resíduo (isto é, não há valores não zero no resíduo) e, portanto, o PQd não é transmitido. Consequentemente no decodificador de vídeo 30, o valor do PQd será inferido como sendo zero em vez de receber um valor de PQd igual à - Preditor de PQ. Sendo assim, o decodificador de vídeo reconstruirá um valor de PQ real de bloco de quantização como zero (PQd inferido) + PQ + Preditor de PQ = Preditor de PQ. Sendo assim, o decodificador de vídeo 30 reconstruirá um valor de PQ real de não zero e, portanto, será incapaz de identificar o modo sem perdas para este bloco de quantização.
[0072] De modo a resolver o primeiro problema, de acordo com um primeiro exemplo desta revelação, o codificador de vídeo 20 é configurado para sinalizar sempre o PQd para cada bloco de quantização independentemente de o bloco de quantização ser ou não um bloco zero. Por exemplo, o PQd pode ser sempre sinalizado para um bloco (uma CU, por exemplo) maior que o GQ ou na primeira CU de um GQ. Desta maneira, o PQd não será incorretamente inferido como sendo zero, e evitaria uma inferência automática de modo de codificação sem perdas para o bloco de quantização quando o PQd é inferido como sendo zero e o Preditor de PQ é também zero.
[0073] De acordo com um segundo exemplo da revelação, de modo a limitar o número de ocorrências em que o PQd é sinalizado, o codificador de vídeo 20 é configurado para sinalizar o PQd para um bloco de quantização no caso de o Preditor de PQ para o bloco de quantização ser zero. É mostrado na Figura 4 um exemplo no qual o Preditor de PQ para o bloco de quantização atual é zero. No exemplo da Figura 4, o Preditor de PQ para o bloco 104 é igual a zero porque o PQ tanto para o bloco acima quanto para o bloco esquerdo é zero. Portanto, de acordo com este exemplo da revelação, o PQd é sinalizado para um bloco de quantização 104 independentemente de ser ou não um bloco zero. Caso contrário se o Preditor de PQ for não zero para o bloco de quantização 104, nenhum PQd é sinalizado para o bloco de quantização 104 se ele for um bloco zero.
[0074] Em outro exemplo, independentemente de o bloco de quantização atual ser ou não um bloco zero, o PQd é sinalizado para o bloco de quantização se um dos PQs (os PQs do bloco de quantização acima ou esquerdo, por exemplo) utilizados para a predição de PQ do bloco de quantização atual for igual a zero. Ou se a diferença entre os PQs utilizados para predição de PQ for menor ou maior que algum limite, e neste caso tal limite pode ser qualquer número inteiro. Caso contrário, o PQd não é sinalizado se o bloco de quantização for um bloco zero. Evidentemente, o PQd é ainda sinalizado se o bloco de quantização contiver coeficientes não zero. O limite pode ser fixo ou sinalizado em um cabeçalho, por exemplo, no PPS, no cabeçalho de fatia, ou no APS. Em outro exemplo, o limite pode ser sinalizado aos níveis de LCU ou CU.
[0075] Em outro exemplo da revelação, em vez de indicar o modo de codificação sem perdas para um bloco utilizando um PQ zero, o codificador de vídeo 20 pode ser configurado para codificar um indicador ou elemento de sintaxe separado para indicar que um bloco é codificado com o modo de codificação sem perdas. Em um exemplo, tal indicador pode ser chamado de “indicador sem perdas”. Quando se utilizam indicadores sem perdas, todos os exemplos de sinalização de PQd acima são ainda aplicáveis.
[0076] Por exemplo, no caso de o bloco de quantização atual ser um bloco zero, o PQd é sinalizado para bloco de quantização se um (ou todos, em outro exemplo) dos blocos de quantização utilizados na predição de PQ (os blocos de quantização esquerdo e acima, nos exemplos acima, por exemplo) for codificado no modo de codificação sem perdas (isto é, o indicador sem perdas estiver ligado para o bloco de quantização utilizado na predição de PQ). Entretanto, se o indicador sem perdas for utilizado para identificar a codificação no modo sem perdas para um bloco de quantização, fixar o PQ em zero para o bloco de quantização quantificado sem perdas pode não ser uma opção ótima, uma vez que este valor de PQ será utilizado posteriormente para predizer valores de PQ de blocos de quantização sucessivos. Um exemplo de blocos de quantização esquerdo e acima codificados sem perdas com PQ atribuído não zero é mostrado na Figura 5 (isto é, um exemplo para um PQ não zero atribuído a blocos de quantização codificados sem perdas). Conforme mostrado na Figura 5, os blocos de quantização esquerdo (PQesquerdo) e acima (PQacima) relativos ao bloco de quantização atual 106 têm um PQ não zero, mas cada um deles é codificado no modo de codificação sem perdas (indicado com um indicador sem perdas = 1).
[0077] De acordo com outro exemplo desta revelação, se um bloco de quantização for codificado no modo de codificação sem perdas indicado pelo indicador sem perdas (PQesquerdo e PQacima, conforme mostrado na Figura 5, por exemplo) um valor de PQ igual ao Preditor de PQ desse bloco de quantização pode ser fixado para o PQ atual para esse bloco. Por exemplo, para PQacima na Figura 5 em vez de se utilizar um valor de PQ de zero para o bloco uma vez que ele é codificado sem perdas, o preditor de PQ para o PQacima (os PQs médios dos blocos à esquerda e acima do PQacima, por exemplo) pode ser utilizado como o PQ atual. Da mesma maneira, um valor de PQ não zero pode estar não disponível para utilização como um Preditor de PQ para blocos de quantização sucessivos, evitando-se assim falta de correspondência codificador/decodificador potencial. Em outro exemplo, o valor de PQ do bloco de quantização codificado sem perdas, indicado pelo indicador sem perdas, pode ser também fixado como igual a um PQ de fatia ou qualquer outro PQ pré-definido.
[0078] Na descrição acima, um indicador sem perdas foi descrito como sendo sinalizado ao nível do bloco de quantização. Como outro exemplo da revelação o codificador de vídeo 20 pode ser configurado para sinalizar o indicador sem perdas por cada CU no interior no bloco de quantização. Neste caso, todas as técnicas descritas acima são ainda aplicáveis. Por exemplo, no caso de uma CU no interior de um bloco de quantização ser codificada sem perdas, a sinalização de PQd pode ser saltada e o valor do PQd é inferido como sendo zero no decodificador de vídeo 30. Sendo assim, um Preditor de PQ será derivado com o PQ para esta CU sem perdas e utilizado para predizer valores de PQ de blocos subsequentes. Neste caso, a sinalização de PQd é saltada para uma CU sem perdas independentemente de haver ou não resíduo não zero na CU.
[0079] Em outro exemplo desta revelação, um indicador sem perdas de bloco de quantização pode ser sinalizado para um bloco de quantização. Quando fixado em um, por exemplo, o indicador sem perdas ao nível do bloco de quantização indica que pelo menos uma CU no interior no bloco de quantização é codificada sem perdas. Se o indicador sem perdas ao nível do bloco de quantização tiver o valor de 1, por exemplo, então um indicador sem perdas de CU é sinalizado para cada CU no interior do bloco de quantização indicando se ou não a CU específica é codificada sem perdas. Caso contrário, se o indicador sem perdas de bloco de quantização for zero (isto é, nenhuma CU codificada sem perdas no bloco de quantização), nenhum indicador sem perdas de CU é necessário para cada CU no interior do bloco de quantização.
[0080] Em outro exemplo, a eficácia de sinalização pode ser também aperfeiçoada quando se utilizam dois indicadores sem perdas de nível (baseados no bloco de quantização e baseados na CU). Se o indicador sem perdas ao nível do bloco de quantização for habilitado (tem um valor de 1, por exemplo) e a última CU for atingida e não houver indicadores sem perdas ao nível da CU codificados antes da última CU para o bloco de quantização atual, então a sinalização do indicador sem perdas da CU para a última CU pode ser saltada. Isto é porque o indicador sem perdas do bloco de quantização indica que há pelo menos uma CU codificada sem perdas e, portanto, pode-se inferir que a última CU neste exemplo deve ser codificada sem perdas. Entretanto, se um indicador sem perdas para o grupo de quantificações for desabilitado (tem um valor de 0, por exemplo), o que significa que não há CUs codificadas sem perdas no interior do bloco de quantização, então a sinalização de indicador sem perdas baseada em CU pode ser omitida para o bloco de quantização atual.
[0081] As mesmas técnicas para codificar um indicador sem perdas e remover a redundância de sinalização, no caso de um indicador sem perdas poder ser inferido Conforme descrito acima, podem ser aplicadas no quadro, fatia, LCU e/ou outra unidade definida ou níveis do processo de codificação de vídeo. O termo “indicador” pode referir-se a um elemento de sintaxe de bit único. Além disto, em vez de um indicador, um elemento de sintaxe de vários bits, um elemento de sintaxe de comprimento variável ou outro tipo de estrutura de dados capaz de transmitir as informações descritas acima para um indicador podem ser também utilizados.
[0082] De modo a se reiterar a segunda desvantagem relacionada com as técnicas de sinalização de PQd atualmente propostas para a HEVC, o decodificador de vídeo 30 pode ser incapaz de identificar corretamente o modo de codificação sem perdas para um bloco de quantização quando o Preditor de PQ para o bloco de quantização atual é não zero, mas o bloco de quantização atual pode ser codificado com o modo sem perdas e não ter resíduo (isto é, não há valores não zero no resíduo). Nesta situação, o PQd não é transmitido e é inferido como sendo zero pelo decodificador de vídeo 30. Sendo assim, o decodificador de vídeo 30 reconstruirá um valor de PQ real não zero utilizando o PQd zero e, portanto, será incapaz de identificar o modo sem perdas para este bloco de quantização.
[0083] Para resolver este problema, de acordo com outro exemplo desta revelação, o codificador de vídeo 20 pode ser configurado para eliminar os cenários nos quais seria de outro modo incapaz de identificar o modo sem perdas, de modo que o codificador de vídeo 20 simplesmente não é autorizado a escolher o modo de codificação sem perdas para um bloco de quantização específico quando não houver resíduo de predição para o bloco de quantização atual e o Preditor de PQ não for zero ou os blocos de quantização utilizados na predição de PQ forem codificados sem perdas (o indicador sem perdas está ligado, por exemplo). Sendo assim, pode ser evitada a situação em que o decodificador de vídeo 30 determina um PQ não zero para um bloco de quantização que foi decodificado sem perdas.
[0084] Outra desvantagem de algumas propostas para sinalização de PQ na HEVC envolve a codificação de binarização unária utilizada. Em tais propostas para a HEVC, o PQd é codificado utilizando-se binarização unária truncada. Um valor de PQd pode variar na faixa de -(26 + QpBdOffsety/2 a 25 + QpBdOffsety/2) onde QpBdOffsety depende da entrada de profundidade de bit, que pode ser de 0 a 18. Devido à distribuição assimétrica dos valores de PQ delta, o cMax de binarização unária truncada depende do sinal de valor de PQd. Por exemplo, supondo-se QpBdOffsety seja igual a zero, cMax é igual a 26 se o valor for negativo e cMax é igual a 25 para valores positivos. Consequentemente, isto exige que o codificador de vídeo 20 e o decodificador de vídeo 30 verifiquem o sinal na codificação e execução de parse do PQd. Dependendo do valor de sinal, um valor de cMax diferente é utilizado na codificação e na execução de parse do valor de PQd.
[0085] Para reduzir esta complexidade, esta revelação propõe também a remoção da dependência de sinal na binarização de PQd pela alteração da faixa do valor de PQd de modo que o valor de cMax na binarização unária truncada seja o mesmo independentemente do sinal. Para um valor de PQd positivo, por exemplo, a faixa pode ser aumentada em 1 e toda a faixa será de -(26 + QpBdOffsety/2) a + (26 + QpBdOffsety/2). Neste caso, a mesma binarização é utilizada para codificar ou efetuar parse em ambos os valores de PQd positivo e negativo e não é necessária nenhuma verificação do valor de sinal. esta técnica não é limitada apenas à binarização unária truncada, mas pode ser aplicada a qualquer outro esquema de binarização, como, por exemplo, métodos de codificação de Golomb Exponencial.
[0086] A Figura 6 é um diagrama de blocos que mostra um exemplo de codificador de vídeo 20 que pode utilizar técnicas para codificação de PQd descritas nesta revelação. O codificador de vídeo 20 será descrito no contexto da codificação HEVC para fins de exemplificação, mas sem limitação desta revelação quanto a outros padrões ou métodos de codificação que podem exigir varredura de coeficientes de transformada. O codificador de vídeo 20 pode efetuar intra- ou e inter-codificação de CUs dentro de quadros de vídeo. A intra-codificação recorre à predição espacial para reduzir ou remover a redundância em dados de vídeo dentro de um dado quadro de vídeo. A inter- codificação recorre à predição temporal para reduzir ou remover a redundância temporal entre o quadro atual e quadros codificados anteriormente de uma sequência de vídeo. O modo intra (modo I) pode referir-se a qualquer um de vários modos de compactação de vídeo espaciais. Modos inter, tais como a predição unidirecional (modo P) ou predição bidirecional (modo B) podem referir-se a qualquer um de vários modos de compactação de vídeo temporais.
[0087] Conforme mostrado na Figura 6, o codificador de vídeo 20 recebe o bloco de vídeo atual dentro de um quadro de vídeo a ser codificado. No exemplo da Figura 6, 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 processamento de intra- predição, um buffer de quadros de referência 64, um somador 50, uma unidade de processamento de transformadas 52, uma unidade de quantização 54 e uma unidade de codificação por entropia 56. A unidade de processamento de transformadas 52 mostrada na Figura 6, é a unidade que aplica a transformada real ou combinações de transformadas a um bloco de dados residuais, e não deve ser confundida com um bloco de coeficientes de transformada, que pode ser também referido como uma unidade de transformada (TU) de uma CU. Para reconstrução de blocos de vídeo o codificador de vídeo 20 inclui também uma unidade de quantização inversa 58, uma unidade de processamento de transformadas inversa 60 e um somador 62. Um filtro de desbloqueio (não mostrado na Figura 6) pode ser também incluído para filtrar fronteiras entre blocos, de modo a remover artefatos de bloqueio do vídeo reconstruído. Se desejado, o filtro de desbloqueio filtraria tipicamente a saída do somador 62.
[0088] Durante o processo de codificação, o codificador de vídeo 20 recebe uma quadro ou fatia de vídeo a ser codificada. O quadro ou fatia pode ser dividida em vários blocos de vídeo, como, por exemplo, as maiores unidades de codificação (LCUs). A unidade de estimação de movimento 42 e a unidade de compensação de movimento 44 efetuam codificação inter-preditiva do bloco de vídeo recebido com relação a um ou mais blocos em um ou mais quadros de referência de modo a se obter compactação temporal. A unidade de processamento de intra-predição 46 pode efetuar codificação intra-preditiva do bloco de vídeo recebido com relação a um ou mais blocos vizinhos no mesmo bloco ou fatia do bloco a ser codificado, de modo a se obter compactação espacial.
[0089] A unidade de seleção de modo 40 pode selecionar um dos modos de codificação, intra ou inter, como, por exemplo, com base em resultados de erro (isto é, distorção) para cada modo, e fornece o bloco intra ou inter predito resultante (uma unidade de predição (PU), por exemplo) ao somador 50 de modo a se gerarem dados de blocos residuais e ao somador de modo a se reconstruir o bloco codificado para utilização em um quadro de referência. O somador 62 combina o bloco predito com dados quantificados por inversão, transformados por inversão da unidade de processamento de transformada inversa 60 para o bloco de modo a reconstruir o bloco codificado, conforme descrito mais detalhadamente em seguida. Alguns quadros de vídeo podem ser designados como quadros I, onde todos os blocos em um quadro I são codificados no modo de intra-predição. Em alguns casos, a unidade de processamento de intra- predição 46 pode efetuar codificação intra-preditiva de um bloco em um quadro P ou B, como, por exemplo, quando a busca de movimento executada pela unidade de estimação de movimento 42 não resulta em uma predição suficiente do bloco.
[0090] A unidade de estimação de movimento 42 e a unidade de compensação de movimento 44 podem ser altamente integradas, mas são mostradas separadamente para fins conceituais. A estimação de movimento (ou busca de movimento) é o processo de gerar vetores de movimento, que estimam movimento para blocos de vídeo. Um vetor de movimento, por exemplo, pode indicar o deslocamento de uma unidade de predição no quadro atual com relação a uma amostra de referência de um quadro de referência. A unidade de estimação de movimento 42 calcula um vetor de movimento para uma unidade de predição de um quadro inter-codificado comparando a unidade de predição com amostras de referência de um quadro de referência armazenado no armazenador de quadros de referência 64. Uma amostra de referência pode ser um bloco que se verifica corresponder intimamente à parte da CU que inclui a PU que é codificada em termos de diferença de pixel, o que pode ser determinado pela soma da diferença absoluta (SAD) pela soma da diferença elevada ao quadrado (SSD) ou por outras métricas de diferença. A amostra de referência pode ocorrer em qualquer lugar dentro de um quadro de referência ou fatia de referência, e não necessariamente na fronteira entre blocos (unidade de codificação, por exemplo) do quadro ou fatia de referência. Em alguns exemplos, a amostra de referência pode ocorrer em uma posição de pixel fracionária.
[0091] A unidade de estimação de movimento 42 envia o vetor de movimento calculado à unidade de codificação por entropia 56 e à unidade de compensação de movimento 44. A parte do quadro de referência identificada pelo vetor de movimento pode ser referida como 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 da CU atual, como, por exemplo, pela recuperação da amostra de referência identificada por um vetor de movimento para a PU.
[0092] A unidade de processamento de intra- predição 46 pode intra-predizer o bloco recebido, como alternativa à inter-predição efetuada pela unidade de estimação de movimento 42 e pela unidade de compensação de movimento 44. A unidade de processamento de intra-predição 46 pode predizer o bloco recebido com relação a blocos vizinhos, codificados anteriormente, como, por exemplo, os blocos acima, acima e à direita, acima e à esquerda, ou à esquerda do bloco atual, supondo-se uma ordem de codificação da esquerda para a direita, do topo para a base para os blocos. A unidade de processamento de intra- predição pode ser configurada com diversos de modos de intra-predição diferentes. Por exemplo, a unidade de processamento de intra-predição 46 pode ser configurada com um determinado número de modos de predição direcional, como, por exemplo, trinta e três modos de predição direcional com base no tamanho da CU que é codificada.
[0093] A unidade de processamento de intra- predição 46 pode selecionar o modo de intra-predição, por exemplo calculando valores de erro para diversos modos de intra-predição e selecionando um modo que apresente o valor de erro mais baixo. Os modos de predição direcional podem incluir funções para combinar valores de pixels espacialmente vizinhos e aplicar os valores combinados a uma ou mais posições de pixel em uma PU. Uma vez que os valores para todas as posições de pixel na PU tenham sido calculados, a unidade de processamento 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 recebido a ser codificado. A unidade de processamento de intra- predição 46 pode continuar a testar modos de predição até que um modo de predição que apresente um valor de erro aceitável seja descoberto. A unidade de intra-predição 46 pode em seguida enviar a PU ao somador 50.
[0094] O codificador de vídeo 20 forma um bloco residual subtraindo os dados de predição calculados pela unidade de compensação de movimento 44 ou pela unidade de processamento de intra-predição 46 do bloco de vídeo original que é codificado. O somador 50 representa o componente ou componentes que executam esta 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 é idêntico ao número de pixels na PU que corresponde ao bloco residual. Os valores no bloco residual podem corresponder às diferenças, isto é, erro, entre os 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.
[0095] Em algumas ocorrências, por exemplo, no modo de codificação sem perdas, o resíduo pode ser enviado diretamente à unidade de codificação por entropia 56. Sendo assim, os processos de transformada e quantização são saltados. Além disto, quaisquer processos de filtro de malha podem ser também saltados.
[0096] A unidade de processamento de transformada 52 pode formar uma ou mais unidades de transformada (Tus) a partir do bloco residual. A unidade de processamento de transformada 52 seleciona uma transformada dentre uma série de transformadas. A transformada pode ser selecionada com base em uma ou mais característica de codificação, tais como tamanho de bloco, modo de codificação ou semelhantes. A unidade de processamento de transformada 52 aplica então a transformada selecionada a TU, produzindo um bloco de vídeo que compreende um arranjo bidimensional de coeficientes de transformada.
[0097] A unidade de processamento de transformada 52 pode enviar os coeficientes de transformada resultantes à unidade de quantização 54. A unidade de quantização 54 pode quantificar então os coeficientes de transformada. A unidade de codificação por entropia 56 pode em seguida efetuar uma varredura dos coeficientes de transformada quantificados na matriz de acordo com o modo de varredura. Esta revelação descreve a unidade de codificação por entropia 56 como efetuando a varredura. Deve ficar entendido, contudo, que em outros exemplos outras unidades de processamento, tais como a unidade de quantização 54, podem efetuar a varredura. A unidade de quantização 54 pode ser configurada para codificar valores de PQd de acordo com as técnicas descritas acima. A descrição adicional da função da unidade de quantização 54 a este respeito será discutida em seguida com referência à Figura 8.
[0098] Uma vez que os coeficientes de transformada são varridos sob forma do arranjo unidimensional a unidade de codificação por entropia 56 pode aplicar codificação por entropia, tal como CABAC, codificação aritmética binária adaptativa ao contexto baseada em sintaxe (SBAC), Entropia com Particionamento de Intervalos de Probabilidade (PIPE) ou outra metodologia de codificação por entropia aos coeficientes.
[0099] Para efetuar CABAC, a unidade de codificação por entropia 56 pode selecionar um modelo de contexto a ser aplicado a um determinado contexto para codificar símbolos a serem transmitidos. O contexto pode referir-se, por exemplo, a se os valores vizinhos são não zero ou não. A unidade de codificação por entropia 56 pode codificar por entropia também elemento de sintaxe, tais como o sinal que representa a transformada selecionada. De acordo com as técnicas desta revelação, a unidade de codificação por entropia 56 pode selecionar o modelo de contexto utilizado para codificar estes elementos de sintaxe com base, por exemplo, em uma direção de intra- predição para modos de intra-predição, na posição de varredura de coeficiente que corresponde aos elementos de sintaxe no tipo de bloco ou no tipo de transformada entre outros fatores utilizados na seleção do modelo de contexto.
[0100] Após a codificação por entropia pela unidade de codificação por entropia 56, o vídeo codificado resultante pode ser transmitido para outro aparelho, tal como o decodificador de vídeo 30, ou arquivado para transmissão ou recuperação posterior.
[0101] Em alguns casos, a unidade de codificação por entropia 56 ou outra unidade do codificador de vídeo 20 pode ser configurada para desempenhar outras funções de codificação, além da codificação por entropia. Por exemplo, a unidade de codificação por entropia 56 pode ser configurada para determinar valores de padrão do bloco codificado (CBP) para CUs e PUs. Além disto, em alguns casos, a unidade de codificação por entropia pode efetuar codificação de coeficientes no comprimento de execução.
[0102] A unidade de quantização inversa 58 e a unidade de processamento de transformada inversa 60 aplicam quantização inversa e transformação inversa para reconstruir o bloco residual no domínio de pixel, para utilização posterior como bloco residual, por exemplo. A unidade de compensação de movimento 44 pode calcular um bloco de referência adicionando o 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 pode aplicar também um ou mais filtros de interpolação ao bloco residual reconstruído de modo a calcular valores de sub-pixel de número inteiro para utilização na estimação de movimento. O somador 62 adiciona o bloco residual reconstruído ao bloco de predição compensado em movimento produzido pela unidade de compensação de movimento 44 de modo a se produzir um bloco de vídeo reconstruído para armazenamento no armazenador de quadros de referência 64. O bloco de vídeo reconstruído pode ser utilizado 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- codificar um bloco no quadro de vídeo subseqüente.
[0103] A Figura 7 é um diagrama de blocos que mostra um exemplo de decodificador de vídeo 30, que decodifica uma sequência de vídeo codificada. No exemplo da Figura 7, o decodificador de vídeo 30 inclui uma unidade de decodificação por entropia 70, uma unidade de compensação de movimento 72, uma unidade de processamento de intra- predição 74, uma unidade de quantização 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, executar uma passagem de decodificação geralmente complementar à passagem de codificação descrita com relação ao codificador de vídeo 20 (ver a Figura 6).
[0104] A unidade de decodificação por entropia 70 executa um processo de decodificação por entropia no fluxo de bits codificado de modo a recuperar um arranjo unidimensional de coeficiente de transformada. O processo de decodificação por entropia utilizado depende da codificação por entropia utilizada pelo codificador de vídeo 20 (CABAC, por exemplo). O processo de codificação por entropia utilizado pelo codificador pode ser sinalizado no fluxo de bits codificado ou pode ser um processo pré- determinado.
[0105] Em algumas ocorrências, por exemplo, no modo de codificação sem perdas, a saída (isto é, um resíduo neste exemplo) pode ser enviada diretamente da unidade de decodificação por entropia 70 ao somador 80. Sendo assim, os processos de transformada e quantização inversas são saltadas. Além disto, quaisquer processos de filtro de malha podem ser também saltados.
[0106] Em alguns exemplos, a unidade de decodificação por entropia 70 (ou a unidade de quantização inversa 76) pode varrer os valores recebidos utilizando uma varredura que espelha o modo de varredura utilizado pela unidade de codificação por entropia 56 (ou pela unidade de quantização 54) do codificador de vídeo 20. Embora a varredura dos coeficientes possa ser efetuada na unidade de quantização inversa 76, a varredura será descrita para fins de ilustração como sendo efetuada pela unidade de decodificação por entropia 70. Além disto, embora mostradas como unidades funcionais separadas para facilitar a exemplificação, a estrutura e a funcionalidade da unidade de decodificação por entropia 70 da unidade de quantização inversa 76 e de outras unidades do decodificador de vídeo 30 podem ser altamente integradas umas com as outras.
[0107] A unidade de quantização inversa 76 quantifica por inversão, isto é desquantiza os coeficientes de transformada quantificados apresentados no fluxo de bits e decodificados pela unidade de decodificação por entropia 70. O processo de quantização inversa pode incluir um processo convencional, como, por exemplo, semelhante aos processos propostos para a HEVC ou definidos pelo padrão de decodificação H.264, O processo de quantização inversa pode incluir a utilização de um parâmetro de quantização PQ calculado pelo codificador de vídeo 20 para a CU de modo a se determinar o grau de quantização e igualmente, o grau de quantização inversa que deve ser aplicado. A unidade de quantização inversa 76 pode quantificar por inversão os coeficientes de transformada ou antes ou depois que os coeficientes são convertidos de um arranjo unidimensional em um arranjo bidimensional. A unidade de quantização inversa 76 pode ser configurada para decodificar valores de PQd de acordo com as técnicas descritas acima. A descrição adicional da função da unidade de quantização inversa 76 a este respeito será discutida em seguida com referência à Figura 9.
[0108] A unidade de processamento de transformada inversa 78 aplica uma transformada inversa aos coeficientes de transformada quantificados por inversão. Em alguns exemplos, a unidade de processamento de transformada inversa 78 pode determinar uma transformada inversa com base na sinalização do codificador de vídeo 20, ou pela inferência da transformada a partir de uma ou mais característica de codificação, tais como tamanho de bloco, modo de codificação ou semelhantes. Em alguns exemplos, a unidade de processamento de transformada inversa 78 pode determinar uma transformada a ser aplicada ao bloco atual com base na transformada sinalizada no nó-raíz de uma transformação quad-tree para uma LCU que inclui o bloco atual. Alternativamente, a transformada pode ser sinalizada na raiz de uma transformação quad-tree de TU para uma CU de nó-folha na transformação quad-tree da LCU. Em alguns exemplos a unidade de processamento de transformada inversa 78 pode aplicar uma transformada inversa em cascata, na qual a unidade de processamento de transformada inversa 78 aplica duas ou mais transformadas inversas aos coeficientes de transformada do bloco atual que é decodificado.
[0109] A unidade de processamento de intra- predição 74 pode gerar dados de predição para o bloco atual do quadro atual com base no modo de intra-predição e nos dados sinalizados de blocos decodificados anteriormente do quadro atual.
[0110] A unidade de compensação de movimento 72 pode recuperar o vetor de movimento, a direção de predição de movimento, e o índice de referência do fluxo de bits codificado. A direção de predição de referência indica se o modo de inter-predição é unidirecional (um quadro P, por exemplo) ou bidirecional (um quadro B). O índice de referência indica em qual quadro de referência o vetor de movimento candidato é baseado.
[0111] Com base na direção de predição de movimento, no índice de quadro de referência e no vetor de movimento recuperados, a unidade de compensação de movimento produz um bloco compensado em movimento para a parte atual. Estes blocos compensados em movimento recriam essencialmente o bloco preditivo uma à outra para produzir os dados residuais.
[0112] A unidade de compensação de movimento 72 pode produzir os blocos compensados em movimento efetuando possivelmente interpolação com base em filtros de interpolação. Identificadores para os filtros de interpolação a serem utilizados para estimação de movimento com precisão de sub-pixel podem ser incluídos nos elementos de sintaxe. A unidade de compensação de movimento 72 pode utilizar os filtros de interpolação utilizados pelo codificador de vídeo 20 durante a codificação do bloco de vídeo para calcular valores interpolados para sub-pixels de número inteiro de um bloco de referência. A unidade de compensação de movimento 72 pode determinar os filtros de interpolação utilizados pelo codificador de vídeo 20 de acordo com informações de sintaxe recebidas e utilizar os filtros de interpolação para produzir blocos preditivos.
[0113] Além disso, a unidade de compensação de movimento 72 e a unidade de processamento de intra-predição 74, em um exemplo de HEVC, podem utilizar algumas das informações de sintaxe (fornecidas por uma transformação quad-tree, por exemplo) de modo a determinarem os tamanhos das LCUs utilizadas para codificar o quadro ou quadros da sequência de vídeo codificada. A unidade de compensação de movimento 72 e a unidade de processamento de intra-predição podem utilizar também informações de sintaxe para determinar informações de divisão que descrevem como cada CU de um quadro da sequência de vídeo codificada é dividida (e, da mesma maneira, como as sub-CUs são divididas). As informações de sintaxe podem incluir também modos que indicam como cada divisão é codificada (intra ou inter- predição e para intra-predição um modo de codificação intra-preditiva), um ou mais quadros de referência (e/ou listas de referência que contêm identificadores para os quadros de referência) para cada PU inter-codificada e outras informações para decodificar a sequência de vídeo codificada.
[0114] 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 processamento de intra-predição 74 para formar blocos decodificados. Se desejado, um filtro de desbloqueio pode ser também aplicado para filtras os blocos decodificados de modo a ser remover os artefatos de bloqueio. Os blocos de vídeo decodificados são então armazenados no armazenador de quadros de referência 82 (também referido como armazenador de imagens decodificadas), que provê blocos de referência para compensação de movimentos subsequentes e também produz vídeo decodificado para apresentação em um aparelho de exibição (tal como o aparelho de exibição 32 da Figura 1).
[0115] A Figura 8 é um fluxograma que mostra um método de codificação de vídeo exemplar de acordo com as técnicas desta revelação. As técnicas da Figura 8 podem ser executadas por uma ou mais unidades de hardware do codificador de vídeo 20, inclusive a unidade de quantização 56.
[0116] Em um exemplo da revelação, a unidade de quantização 56 pode ser configurada para determinar o valor de parâmetro de quantização (PQ) para o bloco de quantização atual (810), determinar um valor de parâmetro de quantização delta (PQd) para o bloco de quantização atual de dados de vídeo com base no PQ e em um preditor de PQ (820), e gerar o valor de PQ, em que o valor de PQd é sinalizado se ou não houver coeficientes de transformada não zero no bloco de quantização atual (830). Em diversos exemplos da revelação, o Preditor de PQ é a média do valor de PQ para um bloco de quantização acima e um bloco de quantização à esquerda, em que o bloco de quantização acima fica localizado acima do bloco de quantização atual e em que o bloco de quantização à esquerda fica localizado à esquerda do bloco de quantização atual. O codificador de vídeo 20 pode ser também configurado para codificar o bloco de quantização atual utilizando o valor de PQ determinado (840).
[0117] Em um exemplo da revelação o codificador de vídeo 20 pode ser também configurado para gerar um tamanho de grupo de quantificações (GQ) em que o grupo de quantificações atual compreende uma ou mais unidade de codificação (CUs) que têm o tamanho igual ou menor que o tamanho de GQ ou uma CU que tem um tamanho maior que o tamanho de GQ.
[0118] Em outro exemplo da revelação, a unidade de quantização 54 pode ser configurada para gerar o valor de PQd para o bloco de quantização atual de dados de vídeo somente no caso de o Preditor de PQ para o bloco de quantização atual ter um valor de zero, e inferir o valor de PQd como sendo zero no caso de o Preditor de PQ para o bloco de quantização atual ter um valor não zero e não haver coeficientes de transformada não zero no bloco de quantização atual.
[0119] Em outro exemplo da revelação, a unidade de quantização 54 pode ser configurada para gerar o valor de PQd para o bloco de quantização atual de dados de vídeo somente no caso de o valor de PQ utilizado para determinar o Preditor de PQ para o bloco de quantização atual ter um valor de zero e inferir o valor de PQd como sendo zero no caso de o Preditor de PQ para o bloco de quantização atual ter um valor não zero e não haver coeficientes de transformada não zero no bloco de quantização atual.
[0120] Em outro exemplo da revelação, a unidade de quantização 54 pode ser configurada para gerar o valor de PQd para o bloco de quantização atual de dados de vídeo somente no caso de a diferença entre dois valores de PQ utilizados para determinar o Preditor de PQ ser maior que o limite, e inferir o valor de PQd como sendo zero no caso de o Preditor de PQ para o bloco de quantização atual ter um valor não zero e não haver coeficientes de transformada não zero no bloco de quantização atual.
[0121] Em outro exemplo da revelação a unidade de quantização 54 pode ser configurada para gerar o valor de PQd para o bloco de quantização atual de dados de vídeo somente no caso de a diferença entre dois valores de PQ utilizados para determinar o Preditor de PQ for menor que um limite, e inferir o valor de PQd como sendo zero no caso de o Preditor de PQ para o bloco de quantização atual ter um valor não zero e não haver coeficientes de transformada não zero no bloco de quantização atual.
[0122] Em outro exemplo da revelação, a unidade de quantização 54 pode ser configurada para gerar qualquer um dos limites acima em um ou mais de um conjunto de parâmetros de imagens (PPS), um conjunto de parâmetro de adaptação (APS), um cabeçalho da fatia, um cabeçalho da maior unidade de codificação (LCU) e um cabeçalho de CU.
[0123] Em outro exemplo da revelação, o codificador de vídeo 20 pode ser configurado para gerar um indicador sem perdas que indica que o bloco de quantização atual foi codificado utilizando-se o modo de codificação sem perdas e codificar o bloco de quantização atual de acordo com o modo de codificação sem perdas.
[0124] Em outro exemplo da revelação, a unidade de quantização 54 pode ser configurada para atribuir um valor de PQ para o bloco de quantização atual como sendo igual a um Preditor de PQ no caso de um indicador sem perdas ser recebido para o bloco de quantização atual, em que o valor de PQ é utilizado para predição de PQ subseqüente.
[0125] Em outro exemplo da revelação, o codificador de vídeo 20 pode ser configurado para de o caso de o bloco de quantização atual inclui duas ou mais CUs, gerar um indicador sem perdas em cada uma das duas ou mais CUs no caso de o indicador sem perdas recebido no bloco de quantização atual indicar que uma ou mais CUs nos blocos de quantização foram codificadas utilizando-se um modo de codificação sem perdas.
[0126] Em outro exemplo da revelação, o codificador de vídeo 20 pode ser configurado para codificar o valor de PQd utilizando uma técnica de binarização unária truncada sem verificar o sinal do valor de PQd.
[0127] Em outro exemplo da revelação, o codificador de vídeo 20 pode ser configurado para não selecionar o modo de codificação sem perdas para a quantização atual para no caso de o bloco de quantização atual não ter resíduo de predição e um ou mais blocos de quantização utilizados para determinar um Preditor de PQ para o bloco de quantização atual serem codificados no modo de codificação sem perdas.
[0129] A Figura 9 é um fluxograma que mostra um método de decodificação de vídeo exemplar de acordo com as técnicas desta revelação. As técnicas da Figura 9 podem ser executadas por uma ou mais unidades do decodificador de vídeo 30, inclusive a unidade de quantização inversa 76.
[0130] Em um exemplo da revelação, a unidade de quantização inversa 76 pode ser configurada para receber um valor de parâmetro de quantização delta (PQd) para o bloco de quantização atual de dados de vídeo, em que o valor de PQd é recebido se ou não houver coeficientes de transformada não zero no bloco de quantização atual (910), e determinar o valor de parâmetro de quantização (PQ) para o bloco de quantização atual com base no valor de PQd recebido e em um Preditor de PQ (920). Em diversos exemplos da revelação, o Preditor de PQ é a média do valor de PQ para o bloco de quantização cima e um bloco de quantização esquerdo em que o bloco de quantização acima fica localizado acima do bloco de quantização atual e em que o bloco de quantização esquerdo fica localizado á esquerda do bloco de quantização atual. O decodificador de vídeo 30 pode ser também configurado para decodificar o bloco de quantização atual utilizando o valor de PQ determinado (930).
[0131] Em outro exemplo da revelação, a unidade de quantização inversa 76 pode ser também configurada para receber um tamanho de grupo de quantificações (GQ), em que o bloco de quantização atual compreende uma ou mais unidades de codificação (CUs) que têm um tamanho igual ou menor ao tamanho de GQ ou uma CU que tem um tamanho maior que p tamanho de GQ.
[0132] Em outro exemplo da revelação, a unidade de quantização inversa 76 pode ser também configurada para receber o valor de PQd para o bloco de quantização atual de dados de vídeo somente no caso de o Preditor de PQ para o bloco de quantização atual ter um valor de zero e inferir o valor de PQd como sendo zero no caso de o Preditor de PQ para o bloco de quantização atual ter um valor não zero e não haver coeficientes de transformada não zero no bloco de quantização atual.
[0133] Em outro exemplo da revelação, a unidade de quantização inversa 76 pode ser também configurada para receber o valor de PQd para o bloco de quantização atual de dados de vídeo somente no caso de o valor de PQ utilizado para determinar o Preditor de PQ para o bloco de quantização atual ter um valor de zero e inferir o valor de PQd como sendo zero no caso de o Preditor de PQ para o bloco de quantização atual ter um valor não zero e não haver coeficientes de transformada não zero no bloco de quantização atual.
[0134] Em outro exemplo da revelação, a unidade de quantização inversa 76 pode ser também configurada para receber o valor de PQd para o bloco de quantização atual de dados de vídeo somente no caso de a diferença entre dois valores de PQ utilizados para determinar o Preditor de PQ ser maior que o limite, e inferir o valor de PQd como sendo zero no caso de o Preditor de PQ para o bloco de quantização atual ter um valor não zero e não haver coeficientes de transformada não zero no bloco de quantização atual.
[0135] Em outro exemplo da revelação, a unidade de quantização inversa 76 pode ser também configurada para receber o valor de PQd para o bloco de quantização atual de dados de vídeo somente no caso de a diferença entre dois valores de PQ utilizado para determinar o Preditor de PQ ser menor que um limite, e inferir o valor de PQd como sendo zero no caso de o Preditor de PQ para o bloco de quantização atual ter um valor não zero e não haver coeficientes de transformada não zero no bloco de quantização atual.
[0136] Em outro exemplo da revelação, a unidade de quantização inversa 76 pode ser também configurada para receber qualquer um dos limites acima descritos em um ou mais de um conjunto de parâmetros de imagens (PPS), um conjunto de parâmetro de adaptação (APS), um cabeçalho da fatia, um cabeçalho da maior unidade de codificação (LCU) e um cabeçalho de CU.
[0137] Em outro exemplo da revelação, o decodificador de vídeo 30 pode ser também configurado para receber um indicador sem perdas que indica que o bloco de quantização atual foi codificado utilizando-se o modo de codificação sem perdas e decodificar o bloco de quantização atual utilizando o modo de codificação sem perdas.
[0138] Em outro exemplo da revelação, a unidade de quantização inversa 76 pode ser também configurado para atribuir um valor de PQ para o bloco de quantização atual como sendo igual a um Preditor de PQ no caso de o indicador sem perdas ser recebido para o bloco de quantização atual, em que o valor de PQ é utilizado para predição de PQ subseqüente.
[0139] Em outro exemplo da revelação, o decodificador de vídeo 30 pode ser também configurado para receber um indicador sem perdas em cada uma das duas ou mais CUs no caso de o indicador sem perdas recebido no bloco de quantização atual indicar que uma ou mais CUS nos blocos de quantização foram codificadas utilizando-se o modo de codificação sem perdas.
[0140] Em outro exemplo da revelação, o decodificador de vídeo 30 pode ser também configurado para decodificar o valor de PQd utilizando uma técnica de binarização unária truncada sem verificar o sinal do valor de PQd.
[0141] Em um ou mais exemplos, as funções descritas podem ser implementadas em hardware, software, firmware ou qualquer combinação deles. Se implementadas em software, as funções podem ser armazenadas ou transmitidas como uma ou mais instruções ou código, através de um meio passível de leitura por computador e executadas por uma unidade de processamento baseada em hardware. Os meios passíveis de leitura por computador podem incluir meios de armazenamento passíveis de leitura por computador que correspondem a meios tangíveis tais como meios de armazenamento de dados ou meios de comunicação que incluem qualquer meio que facilite a transferência de um programa de computador de um lugar para outro, como, por exemplo, de acordo com um protocolo de comunicação. Desta maneira, os meios passíveis de leitura por computador podem corresponder a (1) meios de armazenamento passíveis de leitura por computador tangíveis que são nã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 que possam 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 nesta revelação. Um produto de programa de computador pode incluir um meio passível de leitura por computador.
[0142] A título de exemplo, e não de limitação, tal meio passível de leitura por computador pode compreender RAM, ROM, EEPROM, CD-ROM ou qualquer outro armazenamento em disco óptico, armazenamento em disco magnético, memória flash ou qualquer outro meio que possa ser utilizado para armazenar código de programa desejado sob a forma de instruções ou estruturas de dados e que possa ser acessado por um computador. Além disto, qualquer conexão é apropriadamente denominada de meio passível de leitura por computador. Por exemplo, se as instruções forem transmitidas de um site da Web, servidor ou outra fonte remota utilizando-se um cabo coaxial, cabo de fibra óptica, par trançado, linha de assinante digital (DSL) ou tecnologias sem fio tais como infravermelho, rádio e microonda, então o cabo coaxial, o cabo de fibra óptica, o par trançado, a DSL ou tecnologias sem fio tais como infravermelho, rádio e microonda são incluídos na definição de meio. Deve ficar entendido, contudo, que os meios de armazenamento passíveis de leitura por computador e os meios de armazenamento de dados não incluem conexões, ondas portadoras, sinais ou outros meios transitórios, mas, são, em vez disso, referentes aos meios de armazenamento tangíveis, não transitórios. O termo disco (DISK e DISC), conforme aqui utilizado, inclui disco compacto (CD), disco de laser, disco óptico, disco versátil digital (DVD), disco flexível e disco Blu-ray, em que usualmente discos (DISKS) usualmente reproduzem dados magneticamente, enquanto discos (DISCS) reproduzem dados opticamente com lasers. Combinações deles devem ser também incluídas dentro do alcance dos meios passíveis de leitura por computador.
[0143] As instruções podem ser executadas por um ou mais processadores, tais como um ou mais processadores de sinais digitais (DSPs), microprocessadores de propósito geral, circuitos integrados específico de aplicativo (ASICs), arranjos lógicos programáveis no campo (FPGAs) ou outros conjuntos de circuitos lógicos integrados ou discretos equivalentes. Por conseguinte, o termo “processador” conforme aqui utilizado pode referir-se a qualquer uma das estruturas precedentes ou a qualquer outra estrutura adequada para implementação das técnicas aqui descritas. Além disto, sob alguns aspectos, a funcionalidade aqui descrita pode ser provida dentro de um hardware dedicado e/ou módulos de software configurados para codificar e decodificar ou incorporada a um CODEC combinado. Além disto, as técnicas podem ser completamente implementadas em um ou mais circuitos ou elementos lógicos.
[0144] As técnicas desta revelação podem ser implementadas em uma ampla variedade de aparelhos ou equipamentos, que incluem um aparelho telefônico sem fio, um circuito integrado IC ou um conjunto de ICs (um conjunto de chips, por exemplo). Diversos componentes, módulos ou unidades são descritos nesta revelação para enfatizar aspectos funcionais de aparelhos configurados para executar as técnicas reveladas. Mas, não exigem necessariamente a execução por unidades de hardware diferentes. Em vez disso, conforme descrito acima, diversas unidades podem ser combinadas em uma unidade de hardware de CODEC ou providas por uma coleção de unidade de hardware inter-operantes, que incluem um ou mais processadores, conforme descrito acima, em conjunto em software e/ou firmware adequado.
[0145] Foram descritos diversos exemplos. Estes e outros exemplos estão dentro do alcance das reivindicações seguintes.

Claims (12)

1. Método para decodificar dados de vídeo, o método caracterizado por compreender: receber um elemento de sintaxe de codificação sem perda para um bloco atual dos dados de vídeo, o elemento de sintaxe de codificação sem perda indicando que o bloco atual dos dados de vídeo é codificado usando um modo de codificação sem perda, em que o bloco atual de dados de vídeo é uma unidade de codificação, CU, de dados de vídeo; receber um tamanho de grupo de quantização, GQ; determinar que o CU possui um tamanho maior do que ou igual ao tamanho de GQ, o CU sendo um bloco de quantização atual; atribuir um valor de parâmetro de quantização delta, PQd, de zero para o bloco de quantização atual, se um PQd não é sinalizado para o bloco de quantização atual, em que o valor de PQd é uma diferença entre o valor PQ e um valor de um preditor de PQ; determinar um valor de parâmetro de quantização, PQ, para o bloco de quantização atual com base no valor de PQd atribuído e o Preditor de PQ; e decodificar o bloco de quantização atual de acordo com o modo de codificação sem perda e o valor de PQ determinado, em que o valor de PQ determinado é utilizado para predição PQ subsequente.
2. Método, de acordo com a reivindicação 1, o método caracterizado por compreender adicionalmente: determinar o valor PQ ao adicionar o valor PQd atribuído a um valor do Preditor de PQ, em que o Preditor de PQ é uma média de um valor de PQ para um bloco de quantização acima e um bloco de quantização esquerdo, em que o bloco de quantização acima fica localizado acima do bloco de quantização atual e em que o bloco de quantização esquerdo fica localizado à esquerda do bloco de quantização atual.
3. Método, de acordo com a reivindicação 1, caracterizado por compreender adicionalmente: realizar predição de PQ para outro bloco de dados de vídeo utilizando o valor PQ determinado.
4. Método para codificar dados de vídeo, o método caracterizado por compreender: determinar que um bloco atual de dados de vídeo deve ser codificado utilizando um modo de codificação sem perda, em que o bloco atual de dados de vídeo é uma unidade de codificação, CU, de dados de vídeo; determinar um tamanho de grupo de quantização, GQ; determinar que o CU possui um tamanho maior do que ou igual ao tamanho de GQ, o CU sendo o bloco de quantização atual; determinar um valor de parâmetro de quantização, PQ, para o bloco de quantização atual de dados de vídeo com base em um valor zero para um valor de parâmetro de quantização delta, PQd, e em um preditor de PQ, em que o valor de PQd é uma diferença entre o valor de PQ e um valor do preditor de PQ; gerar um elemento de sintaxe de codificação sem perda par ao bloco atual de dados de vídeo, o elemento de sintaxe de codificação sem perda indicando que o bloco atual de dados de vídeo é codificado utilizando um modo de codificação sem perda; e codificar o bloco de quantização atual de acordo com o modo de codificação sem perda e o valor de PQ determinado, em que o valor de PQ determinado é utilizado para predição PQ subsequente.
5. Método, de acordo com a reivindicação 4, o método caracterizado por compreender adicionalmente: determinar o valor PQ ao adicionar o valor PQd atribuído a um valor do Preditor de PQ, em que o Preditor de PQ é uma média de um valor de PQ para um bloco de quantização acima e um bloco de quantização esquerdo, em que o bloco de quantização acima fica localizado acima do bloco de quantização atual e em que o bloco de quantização esquerdo fica localizado à esquerda do bloco de quantização atual.
6. Método, de acordo com a reivindicação 4, caracterizado por compreender adicionalmente: realizar predição de PQ para outro bloco de vídeo utilizando o valor de PQ determinado.
7. Equipamento (30) configurado para decodificar dados de vídeo, o equipamento caracterizado por compreender: meios para receber um elemento de sintaxe de codificação sem perda para um bloco atual dos dados de vídeo, o elemento de sintaxe de codificação sem perda indicando que o bloco atual dos dados de vídeo é codificado usando um modo de codificação sem perda, em que o bloco atual dos dados de vídeo é uma unidade de codificação, CU, dos dados de vídeo; meios para determinar um tamanho de grupo de quantização, GQ; e meios para determinar que o CU possui um tamanho maior do que ou igual ao tamanho de GQ, o CU sendo o bloco de quantização atual; meios para atribuir um valor de parâmetro de quantização delta, PQd, de zero para o bloco de quantização atual, se um PQd não é sinalizado para o bloco de quantização atual, em que o valor de PQd é uma diferença entre o valor de PQ e um valor de um preditor de PQ; meios para determinar um valor de parâmetro de quantização, PQ, para o bloco de quantização atual com base no valor de PQd atribuído e o Preditor de PQ; e meios para decodificar o bloco de quantização atual de acordo com o modo de codificação sem perda e o valor de PQ determinado, em que o valor de PQ determinado é utilizado para predição PQ subsequente
8. Equipamento (30), de acordo com a reivindicação 7, caracterizado por compreender adicionalmente: meios para determinar o valor de PQ ao adicionar o valor de PQd atribuído a um valor do Preditor de PQ, em que o Preditor de PQ é uma média do valor de um valor de PQ para um bloco de quantização acima e um bloco de quantização esquerdo, em que o bloco de quantização acima fica localizado acima do bloco de quantização atual e em que o bloco de quantização esquerdo fica localizado à esquerda do bloco de quantização atual.
9. Equipamento (20) configurado para codificar dados de vídeo, o equipamento caracterizado por compreender: meios para determinar que um bloco atual de dados de vídeo deve ser codificado utilizando um modo de codificação sem perda; em que o bloco atual de dados de vídeo é uma unidade de codificação, CU, de dados de vídeo; meios para determinar um tamanho de grupo de quantização, GQ; meios para determinar que o CU possui um tamanho maior do que ou igual ao tamanho de GQ, o CU sendo o bloco de quantização atual; meios para determinar um valor de parâmetro de quantização, PQ, para o bloco de quantização atual de dados de vídeo com base em um valor zero para um valor de parâmetro de quantização delta, PQd, e em um preditor de PQ; meios para gerar um elemento de sintaxe de codificação sem perda par ao bloco atual de dados de vídeo, o elemento de sintaxe de codificação sem perda indicando que o bloco atual de dados de vídeo é codificado utilizando um modo de codificação sem perda; e meios para codificar o bloco de quantização atual de acordo com o modo de codificação sem perda e o valor de PQ determinado, em que o valor de PQ determinado é utilizado para predição PQ subsequente.
10. Equipamento (20), de acordo com a reivindicação 9, caracterizado por compreender adicionalmente: meios para determinar o valor de PQ ao adicionar o valor de PQd atribuído a um valor do Preditor de PQ, em que o Preditor de PQ é uma média do valor de um valor de PQ para um bloco de quantização acima e um bloco de quantização esquerdo, em que o bloco de quantização acima fica localizado acima do bloco de quantização atual e em que o bloco de quantização esquerdo fica localizado à esquerda do bloco de quantização atual.
11. Equipamento, de acordo com a reivindicação 7 ou 9, caracterizado por compreender adicionalmente: meios para realizar predição de PQ para outro bloco dos dados de vídeo utilizando o valor PQ determinado.
12. Memória caracterizada por compreender instruções armazenadas na mesma que, quando executadas, fazem com que um ou mais processadores realizem o método conforme definido em qualquer uma das reivindicações 1 a 6.
BR112014026750-2A 2012-04-26 2013-04-26 Codificação de parâmetro de quantização (pq) em codificação de vídeo BR112014026750B1 (pt)

Applications Claiming Priority (9)

Application Number Priority Date Filing Date Title
US201261639015P 2012-04-26 2012-04-26
US61/639,015 2012-04-26
US201261643821P 2012-05-07 2012-05-07
US61/643,821 2012-05-07
US201261656953P 2012-06-07 2012-06-07
US61/656,953 2012-06-07
US13/870,149 US9521410B2 (en) 2012-04-26 2013-04-25 Quantization parameter (QP) coding in video coding
US13/870,149 2013-04-25
PCT/US2013/038383 WO2013163526A1 (en) 2012-04-26 2013-04-26 Quantization parameter (qp) coding in video coding

Publications (2)

Publication Number Publication Date
BR112014026750A2 BR112014026750A2 (pt) 2017-06-27
BR112014026750B1 true BR112014026750B1 (pt) 2023-02-23

Family

ID=49477263

Family Applications (1)

Application Number Title Priority Date Filing Date
BR112014026750-2A BR112014026750B1 (pt) 2012-04-26 2013-04-26 Codificação de parâmetro de quantização (pq) em codificação de vídeo

Country Status (22)

Country Link
US (1) US9521410B2 (pt)
EP (1) EP2842319B1 (pt)
JP (1) JP6174123B2 (pt)
KR (1) KR101837628B1 (pt)
CN (1) CN104255035B (pt)
AR (1) AR092825A1 (pt)
AU (1) AU2013251390B2 (pt)
BR (1) BR112014026750B1 (pt)
CA (1) CA2871139C (pt)
DK (1) DK2842319T3 (pt)
ES (1) ES2864623T3 (pt)
HK (1) HK1201110A1 (pt)
HU (1) HUE054119T2 (pt)
IL (1) IL235249A (pt)
IN (1) IN2014MN02044A (pt)
MY (1) MY166922A (pt)
PH (1) PH12014502365A1 (pt)
RU (1) RU2645291C2 (pt)
SG (2) SG11201406585SA (pt)
TW (1) TWI543622B (pt)
UA (1) UA114721C2 (pt)
WO (1) WO2013163526A1 (pt)

Families Citing this family (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2777258B1 (en) 2011-11-04 2017-01-11 Huawei Technologies Co., Ltd. Binarization of prediction residuals for lossless video coding
PL3448028T3 (pl) * 2012-01-30 2021-01-25 Samsung Electronics Co., Ltd. Urządzenie do kodowania i dekodowania wideo o hierarchicznych danych opierających się na jednostkach zawierające predykcję parametru kwantyzacji
KR102170169B1 (ko) 2013-10-14 2020-10-26 마이크로소프트 테크놀로지 라이센싱, 엘엘씨 비디오 및 이미지 코딩 및 디코딩을 위한 인트라 블록 카피 예측 모드의 피쳐
CN105556962B (zh) * 2013-10-14 2019-05-24 联发科技股份有限公司 发送用于视频系统的无损模式的信号的方法
AU2013403225B2 (en) 2013-10-14 2018-06-14 Microsoft Technology Licensing, Llc Features of base color index map mode for video and image coding and decoding
CN105659602B (zh) 2013-10-14 2019-10-08 微软技术许可有限责任公司 用于视频和图像编码的帧内块复制预测模式的编码器侧选项
US10390034B2 (en) 2014-01-03 2019-08-20 Microsoft Technology Licensing, Llc Innovations in block vector prediction and estimation of reconstructed sample values within an overlap area
US10469863B2 (en) 2014-01-03 2019-11-05 Microsoft Technology Licensing, Llc Block vector prediction in video and image coding/decoding
US11284103B2 (en) 2014-01-17 2022-03-22 Microsoft Technology Licensing, Llc Intra block copy prediction with asymmetric partitions and encoder-side search patterns, search ranges and approaches to partitioning
US10542274B2 (en) 2014-02-21 2020-01-21 Microsoft Technology Licensing, Llc Dictionary encoding and decoding of screen content
KR102413529B1 (ko) 2014-06-19 2022-06-24 마이크로소프트 테크놀로지 라이센싱, 엘엘씨 통합된 인트라 블록 카피 및 인터 예측 모드
CN105874795B (zh) 2014-09-30 2019-11-29 微软技术许可有限责任公司 在波前并行处理被启用时对图片内预测模式的规则
CN106664405B (zh) 2015-06-09 2020-06-09 微软技术许可有限责任公司 用调色板模式对经逸出编码的像素的稳健编码/解码
US11206401B2 (en) 2016-02-11 2021-12-21 Samsung Electronics Co., Ltd. Video encoding method and device and video decoding method and device
US10244248B2 (en) 2016-02-25 2019-03-26 Mediatek Inc. Residual processing circuit using single-path pipeline or multi-path pipeline and associated residual processing method
JP6895645B2 (ja) * 2016-03-25 2021-06-30 パナソニックIpマネジメント株式会社 信号依存型適応量子化を用いて動画像を符号化及び復号するための方法及び装置
JP6769302B2 (ja) * 2016-12-28 2020-10-14 富士通株式会社 動画像符号化装置、動画像符号化方法、動画像符号化用コンピュータプログラム、動画像復号装置及び動画像復号方法ならびに動画像復号用コンピュータプログラム
CN115297325A (zh) * 2017-04-13 2022-11-04 Lg 电子株式会社 熵编码和解码视频信号的方法和设备
US10999576B2 (en) * 2017-05-03 2021-05-04 Novatek Microelectronics Corp. Video processing method
US11070818B2 (en) * 2017-07-05 2021-07-20 Telefonaktiebolaget Lm Ericsson (Publ) Decoding a block of video samples
EP3425911A1 (en) 2017-07-06 2019-01-09 Thomson Licensing A method and a device for picture encoding and decoding
US10986349B2 (en) 2017-12-29 2021-04-20 Microsoft Technology Licensing, Llc Constraints on locations of reference blocks for intra block copy prediction
US10567781B2 (en) * 2018-05-01 2020-02-18 Agora Lab, Inc. Progressive I-slice reference for packet loss resilient video coding
JP7278719B2 (ja) * 2018-06-27 2023-05-22 キヤノン株式会社 画像符号化装置、画像符号化方法及びプログラム、画像復号装置、画像復号方法及びプログラム
CN110881129B (zh) * 2018-09-05 2024-01-05 华为技术有限公司 视频解码方法及视频解码器
US10893272B2 (en) 2019-01-29 2021-01-12 Sony Corporation Image block coding based on pixel-domain pre-processing operations on image block
US11570439B2 (en) * 2019-05-15 2023-01-31 Hyundai Motor Company Inverse quantization device and method used in video decoding device
BR112021023469A2 (pt) 2019-05-24 2022-01-18 Digital Insights Inc Método de codificação de vídeo e aparelho usando conjunto de parâmetros adaptativos
CN114531952A (zh) * 2019-07-05 2022-05-24 威诺瓦国际有限公司 视频编码中的残差的量化
CN112055211B (zh) * 2019-08-15 2021-10-26 华为技术有限公司 视频编码器及qp设置方法
EP4035069A4 (en) * 2019-09-23 2023-10-11 Alibaba Group Holding Limited LOSSLESS ENCODING OF VIDEO DATA
CN115280773A (zh) * 2020-01-10 2022-11-01 三星电子株式会社 获得量化参数的视频解码方法和装置以及发送量化参数的视频编码方法和装置
US11490083B2 (en) 2020-02-05 2022-11-01 Qualcomm Incorporated Learned low-complexity adaptive quantization for video compression
US20240048730A1 (en) * 2022-07-26 2024-02-08 Tencent America LLC Method and apparatus for improved warp delta signaling

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7263125B2 (en) * 2002-04-23 2007-08-28 Nokia Corporation Method and device for indicating quantizer parameters in a video coding system
JP3846489B2 (ja) 2004-05-10 2006-11-15 セイコーエプソン株式会社 画像データ圧縮装置、エンコーダ、電子機器及び画像データ圧縮方法
DE102004059978B4 (de) * 2004-10-15 2006-09-07 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Vorrichtung und Verfahren zum Erzeugen einer codierten Videosequenz und zum Decodieren einer codierten Videosequenz unter Verwendung einer Zwischen-Schicht-Restwerte-Prädiktion sowie ein Computerprogramm und ein computerlesbares Medium
CN1770863A (zh) * 2004-11-02 2006-05-10 华为技术有限公司 零块预判条件的确定方法及零块预先判定方法
US8548055B2 (en) 2005-03-10 2013-10-01 Qualcomm Incorporated Encoding of multimedia data
US8848789B2 (en) * 2006-03-27 2014-09-30 Qualcomm Incorporated Method and system for coding and decoding information associated with video compression
JP5212373B2 (ja) 2007-09-12 2013-06-19 ソニー株式会社 画像処理装置及び画像処理方法
CN100563337C (zh) * 2007-10-24 2009-11-25 上海广电(集团)有限公司中央研究院 基于avs的整数变换量化和整数反变换反量化方法
US20110274162A1 (en) * 2010-05-04 2011-11-10 Minhua Zhou Coding Unit Quantization Parameters in Video Coding
KR20110071231A (ko) * 2009-12-21 2011-06-29 엠텍비젼 주식회사 부호화 방법, 복호화 방법 및 장치
US8588297B2 (en) * 2009-12-23 2013-11-19 Oracle America, Inc. Quantization parameter prediction
EP3944624A1 (en) * 2010-09-30 2022-01-26 Sun Patent Trust Image decoding method, image coding method, image decoding apparatus, image coding apparatus, program, and integrated circuit
US20120114034A1 (en) 2010-11-08 2012-05-10 Mediatek Inc. Method and Apparatus of Delta Quantization Parameter Processing for High Efficiency Video Coding
US8582646B2 (en) * 2011-01-14 2013-11-12 Sony Corporation Methods for delta-QP signaling for decoder parallelization in HEVC
WO2012120822A1 (en) 2011-03-09 2012-09-13 Canon Kabushiki Kaisha Image coding apparatus, method for coding image, program therefor, image decoding apparatus, method for decoding image, and program therefor
US9854275B2 (en) 2011-06-25 2017-12-26 Qualcomm Incorporated Quantization in video coding
US11184623B2 (en) * 2011-09-26 2021-11-23 Texas Instruments Incorporated Method and system for lossless coding mode in video coding
US20130083845A1 (en) * 2011-09-30 2013-04-04 Research In Motion Limited Methods and devices for data compression using a non-uniform reconstruction space
EP2777258B1 (en) * 2011-11-04 2017-01-11 Huawei Technologies Co., Ltd. Binarization of prediction residuals for lossless video coding

Also Published As

Publication number Publication date
AR092825A1 (es) 2015-05-06
DK2842319T3 (da) 2021-04-26
US20130287103A1 (en) 2013-10-31
KR101837628B1 (ko) 2018-03-12
IL235249A (en) 2017-07-31
TWI543622B (zh) 2016-07-21
EP2842319A1 (en) 2015-03-04
CN104255035B (zh) 2018-01-12
RU2014147481A (ru) 2016-06-20
CA2871139A1 (en) 2013-10-31
CN104255035A (zh) 2014-12-31
KR20150016263A (ko) 2015-02-11
HUE054119T2 (hu) 2021-08-30
JP6174123B2 (ja) 2017-08-02
HK1201110A1 (en) 2015-08-21
PH12014502365B1 (en) 2015-01-12
IN2014MN02044A (pt) 2015-08-14
ES2864623T3 (es) 2021-10-14
EP2842319B1 (en) 2021-03-31
TW201404166A (zh) 2014-01-16
CA2871139C (en) 2019-03-05
JP2015518353A (ja) 2015-06-25
MY166922A (en) 2018-07-24
RU2645291C2 (ru) 2018-02-19
US9521410B2 (en) 2016-12-13
AU2013251390B2 (en) 2017-03-16
WO2013163526A1 (en) 2013-10-31
UA114721C2 (uk) 2017-07-25
PH12014502365A1 (en) 2015-01-12
SG11201406585SA (en) 2014-11-27
AU2013251390A1 (en) 2014-11-13
BR112014026750A2 (pt) 2017-06-27
SG10201608824QA (en) 2016-12-29

Similar Documents

Publication Publication Date Title
ES2864623T3 (es) Codificación de parámetros de cuantificación (QP) en codificación de video
US9560383B2 (en) Intra pulse code modulation (IPCM) and lossless coding mode deblocking for video coding
KR101640973B1 (ko) 매핑된 변환들 및 스캐닝 모드들을 이용한 비디오 코딩
US9313498B2 (en) Sign hiding techniques for quantized transform coefficients in video coding
US9247254B2 (en) Non-square transforms in intra-prediction video coding
US20170214940A1 (en) Enhanced intra-prediction mode signaling for video coding using neighboring mode
KR101460921B1 (ko) 인터 예측 모드들의 코딩 및 비디오 코딩을 위한 참조 화상 목록 인덱스들의 코딩
US9066102B2 (en) Reference picture list construction for generalized P/B frames in video coding
BR112014011065B1 (pt) Número de redução de contexto para codificação aritmética binária adaptativa ao contexto
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
KR20130063028A (ko) 인트라-예측을 이용한 비디오 코딩
AU2012267737A1 (en) Enhanced intra-prediction mode signaling for video coding using neighboring mode
KR20150008412A (ko) 비디오 코딩에서 양자화 매트릭스를 위한 균일한 입도
BR112017016159B1 (pt) Contextos para unidades de árvore de codificação grandes
US20140003530A1 (en) Sign hiding techniques for quantized transform coefficients in video coding
KR20140030326A (ko) 비디오 코딩을 위한 다수 구역 스캐닝 순서
US20130272414A1 (en) Group flag in transform coefficient coding for video coding
JP2017512025A (ja) ビデオコーディングにおけるフリッカー検出および軽減
RU2574280C2 (ru) Выбор единых кандидатов режима слияния и адаптивного режима предсказания вектора движения

Legal Events

Date Code Title Description
B15K Others concerning applications: alteration of classification

Ipc: H04N 7/00 (2011.01)

B06F Objections, documents and/or translations needed after an examination request according [chapter 6.6 patent gazette]
B15K Others concerning applications: alteration of classification

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

Ipc: H04N 19/124 (2014.01), H04N 19/126 (2014.01), H04N

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 26/04/2013, OBSERVADAS AS CONDICOES LEGAIS