BR112014024920B1 - Codificação de indicador de bloco codificado - Google Patents

Codificação de indicador de bloco codificado Download PDF

Info

Publication number
BR112014024920B1
BR112014024920B1 BR112014024920-2A BR112014024920A BR112014024920B1 BR 112014024920 B1 BR112014024920 B1 BR 112014024920B1 BR 112014024920 A BR112014024920 A BR 112014024920A BR 112014024920 B1 BR112014024920 B1 BR 112014024920B1
Authority
BR
Brazil
Prior art keywords
node
cbf
rqt
block
video
Prior art date
Application number
BR112014024920-2A
Other languages
English (en)
Other versions
BR112014024920A2 (pt
BR112014024920A8 (pt
Inventor
Xianglin Wang
Liwei GUO
Marta Karczewicz
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 BR112014024920A2 publication Critical patent/BR112014024920A2/pt
Publication of BR112014024920A8 publication Critical patent/BR112014024920A8/pt
Publication of BR112014024920B1 publication Critical patent/BR112014024920B1/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/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/96Tree coding, e.g. quad-tree coding
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • G06T9/40Tree coding, e.g. quadtree, octree
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/119Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/13Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • H04N19/159Prediction type, e.g. intra-frame, inter-frame or bidirectional frame prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/186Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a colour or a chrominance component
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/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/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/91Entropy coding, e.g. variable length coding [VLC] or arithmetic coding

Landscapes

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

Abstract

CODIFICAÇÃO DE INDICADOR DE BLOCO CODIFICADO Um codificador de vídeo gera uma sequência de bits que inclui um quadtree residual (RQT) para uma unidade de codificação (CU). A CU é maior do que um tamanho máximo permitido de unidade de transformação (TU) e a RQT inclui uma hierarquia de nós. Um nó raiz da RQT corresponde à CU como um todo e nós folha da RQT correspondem às TUs da CU. O nó raiz é associado com um indicador de bloco codificado (CBF) para um componente de crominância. O CBF para o componente de crominância indica se qualquer uma das TUs da CU são associadas com um bloco de coeficiente significante que é baseado em amostras do componente de crominância em particular. Um decodificador de vídeo recebe a sequência de bits e determina, com base no CBF, se os blocos de coeficiente associados com as TUs que correspondem aos nós folha incluem coeficientes diferentes de zero.

Description

[0001] Esse pedido reivindica os benefícios do pedido de patente provisório U.S. No. 61/620.765, depositado em 5 de abril de 2012, a totalidade do conteúdo do qual é incorporado aqui por referência.
Campo Técnico
[0002] Essa descrição refere-se à codificação e compressão de vídeo, e, em particular, à codificação dos indicadores de bloco codificado.
Fundamentos
[0003] As capacidades de vídeo digital podem ser incorporadas em uma ampla faixa de dispositivos, incluindo televisões digitais, sistemas de difusão direta digital, sistemas de difusão sem fio, assistentes digitais pessoais (PDAs), computadores laptop ou desktop, câmeras digitais, dispositivos de gravação digital, aparelhos de mídia digital, dispositivos de jogos de vídeo, consoles de jogos de vídeo, telefones de rádio satélite ou celular, dispositivos de teleconferência de vídeo, e similares. Dispositivos de vídeo digital implementam técnicas de compressão de vídeo, tal como descrito nos padrões definidos por MPEG-2, MPEG-4, ITU-T, H.263, ITU-T H.264/MPEG-4, Parte 10, Codificação de Vídeo Avançada (AVC), padrão de Codificação de Vídeo de Alta Eficiência (HEVC) atualmente em desenvolvimento, e extensões de tais padrões, para transmitir, receber e armazenar informação de vídeo digital de forma mais eficiente.
[0004] As técnicas de compressão de vídeo realizam previsão espacial (intraimagem) e/ou previsão temporal (interimagem) para reduzir ou remover a redundância inerente às sequências de vídeo. Para codificação de vídeo com base em bloco, uma fatia de vídeo pode ser dividida em blocos de vídeo, que também podem ser referidos como blocos de árvore, unidades de codificação (CUs) e/ou nós de codificação. Os blocos de vídeo em uma fatia intracodificada (I) de uma imagem são codificados utilizando previsão espacial com relação às amostras de referência em blocos vizinhos na mesma imagem. Os blocos de vídeo em uma fatia intercodificada (P ou B) de uma imagem podem utilizar previsão espacial com relação às amostras de referência em blocos vizinhos na mesma imagem ou previsão temporal com relação às amostras de referência em outras imagens de referência. As imagens podem ser referidas como quadros, e imagens de referência podem ser referidas como quadros de referência.
Sumário
[0005] Em geral, essa descrição descreve as técnicas de sinalização da presença de blocos de coeficiente significativos. Um bloco de coeficiente significativo pode ser um bloco de coeficiente que inclui um ou mais coeficientes diferentes de zero. Mais especificamente, um codificador de vídeo pode gerar uma sequência de bits que inclui dados que representam um quad tree residual (RQT) para uma unidade de codificação (CU) que é maior do que um tamanho de unidade de transformação máximo permitido (TU). RQT inclui uma hierarquia de nós. Um nó raiz de RQT corresponde à CU como um todo e nós folhas da RQT correspondem a TUs da CU. O nó raiz é associado com um indicador de bloco codificado (CBF) para um componente crominância. CBF para o componente crominância pode indicar se qualquer uma das TUs da CU estão associadas com um bloco de coeficiente significativo que é baseado em amostras do componente crominância em particular. Um decodificador de vídeo pode receber a sequência de bits e pode determinar, com base em CBF, se qualquer um dos nós folha são associados com um bloco de coeficiente significante para o componente crominância.
[0006] Em um aspecto, um método para codificação de dados de vídeo compreende a geração de dados que representam uma RQT residual para uma CU, a CU sendo maior do que um tamanho máximo permitido de TU. A RQT inclui uma hierarquia de nós. Um nó raiz da RQT corresponde à CU como um todo e nós folha da RQT correspondem a TUs da CU. O nó raiz é associado com um CBF para um componente crominância em particular, CBF para o componente crominância em particular indicando se qualquer uma das TUs da CU estão associadas com um bloco de coeficiente crominância significante que é baseado em amostras do componente crominância em particular. O método também compreende o envio de uma sequência de bits que inclui RQT para a CU.
[0007] Em outro aspecto, um método de decodificação de dados de vídeo compreende análise, a partir de uma sequência de bits que inclui uma representação codificada de dados de vídeo, um CBF de um nó raiz de uma RQT de uma CU. Um bloco de pixel da CU é maior do que um tamanho máximo permitido de TU. O método também compreende, se CBF possuir um primeiro valor, a análise, a partir da sequência de bits, de um bloco de coeficiente crominância associado com um nó folha da RQT. Se CBF possuir um segundo valor que é diferente do primeiro valor, o bloco de coeficiente de crominância associado com o nó folha não é analisado a partir da sequência de bits.
[0008] Em outro aspecto, um dispositivo de codificação de vídeo codifica dados de vídeo. O dispositivo de codificação de vídeo compreende um ou mais processadores configurados par gerar dados que representam uma RQT para uma CU, a CU sendo maior do que um tamanho máximo permitido de TU, a RQT incluindo uma hierarquia de notas. Um nó raiz de RQT corresponde à CU como um todo e nós folha de RQT correspondem às TUs da CU. O nó raiz é associado com um CBF para um componente de crominância em particular, CBF para o componente de crominância em particular indicando se qualquer uma das TUs da CU estão associadas com um bloco de coeficiente de crominância significante que é baseado em amostras de componente de crominância em particular.
[0011] Em outro aspecto, um dispositivo de decodificação de vídeo decodifica os dados de vídeo. O dispositivo de decodificação de vídeo compreende meios para analisar, a partir de uma sequência de bits que inclui uma representação codificada de dados de vídeo, um CBF de um nó raiz de uma RQT de uma CU. Um bloco de pixel da CU é maior do que um tamanho máximo permitido de TU. O dispositivo de decodificação de vídeo também compreende meios de analisar, se CBF possuir um primeiro valor, a partir da sequência de bits, um bloco de coeficiente de crominância associado com o nó folha da RQT. Se CBF possuir um segundo valor que é diferente do primeiro valor, o bloco de coeficiente de crominância associado com o nó folha não é analisado a partir da sequência de bits.
[0012] Em outro aspecto, um meio de armazenamento legível por computador armazena instruções que, quando executadas por um ou mais processadores de um dispositivo de codificação de vídeo, configura o dispositivo de codificação de vídeo para gerar dados que representam uma RQT para uma CU, a CU sendo maior do que um tamanho máximo permitido de unidade de transformação (TU), a RQT incluindo uma hierarquia de nós. Um nó raiz de RQT corresponde à CU como um todo e nós folha de RQT correspondem às TUs da CU. O nó raiz é associado com um CBF para um componente de crominância em particular, CBF para o componente de crominância em particular indicando se qualquer uma das TUs da CU está associada com um bloco de coeficiente de crominância significativo que é baseado em amostras do componente de crominância em particular.
[0013] Em outro aspecto, um meio de armazenamento legível por computador armazena instruções que, quando executadas por um ou mais processadores de um dispositivo de decodificação de vídeo, configuram o dispositivo de codificação de vídeo para analisar, a partir de uma sequência de bits que inclui uma representação codificada de dados de vídeo, um CBF de um nó raiz de uma RQT de uma CU. Um bloco de pixel da CU é maior do que um tamanho máximo permitido de TU. As instruções também configuram um ou mais processadores para analisar, se CBF possuir um primeiro valor, a partir da sequência de bits, um bloco de coeficiente de crominância associado com um nó folha de RQT. Se CBF possuir um segundo valor que é diferente do primeiro valor, o bloco de coeficiente de crominância associado com o nó folha não é analisado a partir da sequência de bits.
[0014] Os detalhes de um ou mais exemplos da descrição são apresentados nos desenhos em anexo e na descrição abaixo. Outras características, objetivos e vantagens serão aparentes a partir da descrição, desenhos e reivindicações.
Breve Descrição dos Desenhos
[0015] A figura 1 é um diagrama em bloco ilustrando um sistema de codificação de vídeo ilustrativo que pode utilizar as técnicas dessa descrição;
[0016] A figura 2A é um diagrama conceitual ilustrando uma decomposição de quadtree ilustrativo de um bloco de pixel residual associado com uma unidade de codificação (CU);
[0017] A figura 2B é um diagrama conceitual ilustrando o esquema de decomposição de transformação da figura 2A descrito utilizando uma árvore;
[0018] A figura 3 é um diagrama conceitual ilustrando um quadtree residual ilustrativo (RQT);
[0019] A figura 4A é um diagrama conceitual ilustrando um bloco de amostra de luminescência residual ilustrativo de uma CU de 64 x 64;
[0020] A figura 4B é um diagrama conceitual ilustrando um bloco de amostra de crominância residual ilustrativo de uma CU de 64 x 64;
[0021] A figura 5 é um diagrama em bloco ilustrando um codificador de vídeo ilustrativo que pode implementar as técnicas dessa descrição;
[0022] A figura 6 é um diagrama em bloco ilustrando um decodificador de vídeo ilustrativo que pode implementar as técnicas dessa descrição;
[0023] A figura 7 é um diagrama conceitual ilustrando um quadtree residual ilustrativo (RQT), de acordo com uma ou mais técnicas dessa descrição;
[0024] A figura 8 é um fluxograma ilustrando uma operação ilustrativa de um codificador de vídeo, de acordo com uma ou mais técnicas dessa descrição;
[0025] A figura 9 é um fluxograma ilustrando uma operação ilustrativa de um decodificador de vídeo, de acordo com uma ou mais técnicas dessa descrição;
[0026] A figura 10A é um fluxograma ilustrando uma operação ilustrativa para analisar elementos de sintaxe de um nó de uma RQT, de acordo com uma ou mais técnicas dessa descrição;
[0027] A figura 10B é um fluxograma ilustrando uma continuação da operação ilustrativa da figura 10A de acordo com uma ou mais técnicas dessa descrição.
Descrição Detalhada
[0028] Um codificador de vídeo decompõe um bloco de pixel residual de uma unidade de codificação (CU) em um ou mais blocos de pixel residuais menores, cada um dos quais é associado com uma unidade de transformação (TU) da CU. Cada pixel dos blocos de pixel residuais inclui uma amostra de luminescência (Y) e também pode incluir duas amostras de crominância, U e V. Uma amostra U pode indicar uma diferença entre um componente azul de um pixel e uma amostra Y para o pixel. Por essa razão, uma amostra U também pode ser referida como uma amostra Cb. Uma amostra V pode indicar uma diferença entre uma amostra vermelha de um pixel e uma amostra Y para o pixel. Por essa razão, uma amostra V também pode ser referida como uma amostra Cr.
[0029] Visto que cada pixel residual inclui uma amostra Y e também pode incluir uma amostra U e uma amostra V, cada uma das TUs pode ser associada com um bloco de amostras Y residuais (isso é, um bloco de amostra residual Y), um bloco de amostras U residuais (isso é, um bloco de amostra residual U), e um bloco de amostras V residuais (isso é, um bloco de amostra residual V). O codificador de vídeo pode aplicar uma ou mais transformações a cada um dos blocos de amostra residuais a fim de gerar blocos de coeficiente que correspondem a blocos de amostra residuais. Alguns dos blocos de coeficiente incluem coeficientes diferentes de zero, significando que esses blocos de coeficiente incluem apenas coeficientes iguais a zero. Para facilitar a explicação, essa descrição pode se referir a um bloco coeficiente como um bloco de coeficiente significante se o bloco de coeficiente incluir um ou mais coeficientes diferentes de zero. Se um bloco de coeficiente incluir coeficientes diferentes de zero (isso é, o bloco de coeficiente inclui apenas coeficientes de valor igual a zero), pode ser mais eficiente que o codificador de vídeo gere um indicador que indica que o bloco de coeficiente inclui coeficientes diferentes de zero do que para sinalizar cada um dos coeficientes iguais a zero do bloco de coeficiente.
[0030] O codificador de vídeo pode gerar dados que representam um quadtree residual (RQT) para a CU. RQT também pode ser referida como uma árvore de transformação. RQT para a CU compreende um conjunto de nós. Cada um dos nós corresponde a um bloco de amostra residual. Um nó raiz de RQT corresponde ao bloco de pixel residual da CU. Os nós folha de RQT correspondem a blocos de pixel residuais de TUs da CU. Os nós de RQT podem ser associados com indicadores divididos. O indicador dividido de um nó pode indicar se o nó possui uma pluralidade de nós criança da RQT.
[0031] Adicionalmente, além de ser associado a indicadores divididos, cada nó folha da RQT é associado com um indicador de bloco codificado de luminescência (CBF) que indica se o nó folha é associado com um bloco de coeficiente de luminescência significante. Nessa descrição, um CBF de luminescência também pode ser referido como um CBF Y e um bloco e coeficiente de luminescência pode ser referido como um bloco de coeficiente Y. Um bloco de coeficiente Y é um bloco de coeficiente com base em um bloco de amostra Y residual. Em adição aos indicadores divididos e CBFs de luminescência, os nós da RQT também podem ser associados com CBFs U e CBFs V. Um CBF U de um nó indica se o nó, ou qualquer nó descendente do nó, é associado com um bloco de coeficiente U. Um bloco de coeficiente U é um bloco de coeficiente com base em um bloco de amostra U residual. Um primeiro nó pode ser um nó descendente de um segundo nó se o segundo nó for o nó raiz da RQT ou se existir um percurso através da RQT a partir do primeiro nó para o nó raiz que passa através do segundo nó e não passa através de qualquer nó mais de uma vez. Se o CBF U de um nó indicar que o nó, e cada nó descendente do nó, não está associado com um bloco de coeficiente U significante, nenhum nó descendente do nó é associado com um CBF U. Um CBF V de um nó indica se o nó, ou qualquer nó descendente do nó, é associado com um bloco de coeficiente V significante. Um bloco de coeficiente V é um bloco de coeficiente com base em um bloco de amostra V residual. Se o CBF V de um nó indicar que o nó, e cada nó descendente do nó, não está associado com um bloco de coeficiente V significante, nenhum nó descendente do nó é associado com um CBF V. Se um nó corresponder a um bloco de amostra residual que é maior do que um tamanho máximo permitido de TU, o nó não está associado com um CBF U ou um CBF V.
[0032] Pode haver vários problemas com esse sistema. Primeiro, existem diferentes métodos de sinalização de se os nós de RQT são associados com blocos de coeficiente de luminescência significativos e blocos de coeficiente U e V significativos. Isso é, CBFs Y são codificados apenas nos nós folha de RQT enquanto CBFs U e V podem ser codificados em nós não folha de RQT. Em segundo lugar, a codificação hierárquica de CBFs U e V aplica apenas a alguns níveis de RQT. Por exemplo, o codificador de vídeo não sinaliza CBFs U e V nos nós que correspondem a blocos de pixel residuais maiores do que um tamanho máximo permitido de TU. Esses problemas podem aumentar a complexidade de codificadores e decodificadores de vídeo.
[0033] De acordo com as técnicas dessa descrição, um codificador de vídeo pode gerar dados que representam uma RQT para uma CU. A CU pode ser maior do que um tamanho máximo permitido de TU (isso é, um bloco de pixel associado com a CU pode ser maior do que o tamanho máximo permitido de TU). O tamanho máximo permitido de TU pode ser um tamanho maior permitido de um bloco de pixel associado com uma TU. Um nó raiz da RQT corresponde AÇU como um todo e nós folha da RQT correspondem a TUs da CU. O nó raiz é associado com um CBF para um componente e crominância em particular, CBF para o componente de crominância em particular indicando se qualquer uma das TUs da CU são associadas com um bloco de coeficiente significativo que é baseado em amostras do componente de crominância particular. O componente de crominância particular pode ser um componente U ou um componente V. De forma similar, um decodificador de vídeo pode analisar, a partir de uma sequência de bits que inclui uma representação codificada de dados de vídeo, um CBF de um nó raiz de uma RQT de uma CU, onde o bloco de pixel da CU é maior do que um tamanho máximo permitido de TU. Se CBF possuir um primeiro valor, o decodificador de vídeo pode analisar, a partir da sequência de bits, um bloco de coeficiente de crominância associado com um nó folha da RQT. Se CBF possuir um segundo valor que é diferente do primeiro valor, o bloco de coeficiente de crominância associado com o nó folha não é analisado a partir da sequência de bits.
[0034] As técnicas dessa descrição podem fornecer várias vantagens. Por exemplo, se um CBF de crominância (por exemplo, CBF para o componente de crominância particular) não for sinalizado no nó raiz, CBFs de crominância são sinalizados em cada nó em um primeiro nível da RQT que corresponde às menores TUs do que o tamanho máximo permitido de TU. Em contraste, se um CBF de crominância é sinalizado no nó raiz de RQT, o codificador de vídeo pode não precisar sinalizar CBFs de crominância em cada nó do primeiro nível de RQT que corresponde às menores TUs do que o tamanho de TU máximo permitido, especialmente se CBF no nó raiz possuir o segundo valor. Dessa forma, as técnicas dessa descrição podem reduzir o número de CBFs sinalizados, e, dessa forma, aumentam a eficiência de codificação.
[0035] Os desenhos em anexo ilustram exemplos. Elementos indicados por referências numéricas nos desenhos em anexo correspondem a elementos indicados por referências numéricas similares na descrição a seguir. Nessa descrição, elementos possuindo nomes que iniciam com as palavras ordinais (por exemplo, "primeiro", "segundo", "terceiro" e assim por diante) não implicam necessariamente que os elementos possuam uma ordem em particular. Ao invés disso, as palavras ordinais são meramente utilizadas para fazer referência aos elementos diferentes de um mesmo tipo ou tipo similar.
[0036] A figura 1 é um diagrama em bloco ilustrando um exemplo de sistema de codificação de vídeo 10 que pode utilizar as técnicas dessa descrição. Como utilizado e descrito aqui, o termo "codificador de vídeo" se refere geralmente a ambos os codificadores e decodificadores de vídeo. Nessa descrição, os termos "codificação de vídeo" ou "codificação" podem fazer referência genericamente à codificação ou decodificação de vídeo.
[0037] Como ilustrado na figura 1, o sistema de codificação de vídeo 10 inclui um dispositivo fonte 12 e um dispositivo de destino 14. O dispositivo fonte 12 gera dados de vídeo codificados. De acordo, o dispositivo fonte 12 pode ser referido como um dispositivo de codificação de vídeo o um aparelho de codificação de vídeo. O dispositivo de destino 14 pode decodificar os dados de vídeo codificados gerados pelo dispositivo fonte 12. De acordo, o dispositivo de destino 14 pode ser referido a um dispositivo de decodificação de vídeo ou um aparelho de decodificação de vídeo. O dispositivo fonte 12 e o dispositivo de destino 14 podem ser exemplos de dispositivos de codificação de vídeo ou aparelhos de codificação de vídeo.
[0038] O dispositivo fonte 12 e o dispositivo de destino 14 podem compreender uma ampla faixa de dispositivos, incluindo computadores desktop, dispositivos de computação móvel, computadores notebook (por exemplo, laptop), computadores tablet, caixas decodificadoras, aparelhos telefônicos tal como "smartphones", televisões, câmeras, dispositivos de exibição, aparelhos de mídia digital, consoles de jogos de vídeo, computadores automotivos, ou similares.
[0039] O dispositivo de destino 14 pode receber dados de vídeo codificados do dispositivo fonte 12 através de um canal 16. O canal 16 pode compreender um ou mais meios ou dispositivos capazes de mover os dados de vídeo codificados do dispositivo fonte 12 para o dispositivo de destino 14. Em um exemplo, o canal 16 pode compreender um ou mais meios de comunicação que permitem que o dispositivo fonte 12 transmita os dados de vídeo codificados diretamente para o dispositivo de destino 14 em tempo real. Nesse exemplo, o dispositivo fonte 12 pode modular os dados de vídeo codificados de acordo com um padrão de comunicação, tal como um protocolo de comunicação sem fio, e pode transmitir os dados de vídeo modulados para o dispositivo de destino 14. Os um ou mais meios de comunicação podem incluir meio de comunicação sem e/ou com fio, tal como espectro de frequência de rádio (RF) ou uma ou mais linhas de transmissão físicas. Os um ou mais meios de comunicação podem formar parte de uma rede com base em pacote, tal como uma rede de área local, uma rede de área ampla, ou uma rede global (por exemplo, a Internet). O canal 16 pode incluir vários tipos de dispositivos, tal como roteadores, comutadores, estações base, ou outro equipamento que facilite a comunicação do dispositivo fonte 12 para o dispositivo de destino 14.
[0040] Em outro exemplo, o canal 16 pode incluir um meio de armazenamento que armazene os dados de vídeo codificados gerados pelo dispositivo fonte 12. Nesse exemplo, o dispositivo de destino 14 pode acessar o meio de armazenamento através de acesso de disco ou acesso de cartão. O meio de armazenamento pode incluir uma variedade de mídia de armazenamento de dados acessada localmente tal como discos Blu-ray, DVDs, CD-ROMs, memória flash, ou outro meio de armazenamento digital adequado para armazenamento de dados de vídeo codificados.
[0041] Em um exemplo adicional, o canal 16 pode incluir um servidor de arquivo ou outro dispositivo de armazenamento intermediário que armazena os dados de vídeo codificados gerados pelo dispositivo fonte 12. Nesse exemplo, o dispositivo de destino 14 pode acessar dados de vídeo codificados armazenados no servidor de arquivo ou outro dispositivo de armazenamento intermediário através de sequenciamento ou download. O servidor de arquivo pode ser um tipo de servidor capaz de armazenar dados de vídeo codificados e transmitir dados de vídeo codificados para o dispositivo de destino 14. Servidores de arquivo ilustrativos incluem servidores de rede (por exemplo, para um sítio da rede), servidores de protocolo de transferência de arquivo (FTP), dispositivos de armazenamento anexados à rede (NAS), e acionadores de disco local.
[0042] O dispositivo de destino 14 pode acessar os dados de vídeo codificados através de uma conexão de dados padrão, tal como uma conexão com a Internet. Tipos ilustrativos de conexões de dados podem incluir canais sem fio (por exemplo, conexões Wi-Fi), conexões com fio (por exemplo, DSL, modem a cabo, etc.), ou combinações de ambos que sejam adequadas para acessar dados de vídeo codificados armazenados em um servidor de arquivo. A transmissão de dados de vídeo codificados a partir do servidor de arquivo pode ser uma transmissão de sequenciamento, uma transmissão de download, ou uma combinação das duas.
[0043] As técnicas dessa descrição não estão limitadas a aplicações sem fio ou configurações. As técnicas podem ser aplicadas à codificação de vídeo em suporte de uma variedade de aplicativos de multimídia, tal como difusões de televisão através do ar, transmissões de televisão a cabo, transmissões de televisão via satélite, transmissões de vídeo de sequenciamento, por exemplo, através da Internet, codificação de dados de vídeo para armazenamento em um meio de armazenamento de dados, decodificação dos dados de vídeo armazenados em um meio de armazenamento de dados, ou outros aplicativos. Em alguns exemplos, o sistema de codificação de vídeo 10 pode ser configurado para suportar a transmissão de vídeo de via única ou duas vias para suportar aplicativos tal como sequenciamento de vídeo, reprodução de vídeo, difusão de vídeo, e/ou videotelefonia.
[0044] No exemplo da figura 1, o dispositivo fonte 12 inclui uma fonte de vídeo 18, um codificador de vídeo 20, e uma interface de saída 22. Em alguns exemplos, a interface de saída 22 pode incluir um modulador/demodulador (modem) e/ou transmissor. A fonte de vídeo 18 pode incluir um dispositivo de captura de vídeo, por exemplo, uma câmera de vídeo, um arquivo de vídeo contendo dados de vídeo previamente capturados, uma interface de alimentação de vídeo para receber dados de vídeo a partir de um provedor de conteúdo de vídeo e/ou um sistema gráfico de computador para geração de dados de vídeo ou uma combinação de tais fontes de dados de vídeo.
[0045] O codificador de vídeo 20 pode codificar os dados de vídeo a partir da fonte de vídeo 18. Em alguns exemplos, o dispositivo fonte 12 transmite diretamente os dados de vídeo codificados para o dispositivo de destino 14 através da interface de saída 22. Em outros exemplos, os dados de vídeo codificados também podem ser armazenados em um meio de armazenamento ou um servidor de arquivo para acesso posterior pelo dispositivo de destino 14 para decodificação e/ou reprodução.
[0046] No exemplo da figura 1, o dispositivo de destino 14 inclui uma interface de entrada 28, um decodificador de vídeo 30, e um dispositivo de exibição 32. Em alguns exemplos, a interface de entrada 28 inclui um receptor e/ou um modem. A interface de entrada 28 pode receber dados de vídeo codificados através do canal 16. O dispositivo de exibição 32 pode ser integrado com ou pode ser externo ao dispositivo de destino 14. Em geral, o dispositivo de exibição 32 exibe dados de vídeo decodificados. O dispositivo de exibição 32 pode compreender uma variedade de dispositivos de exibição, tal como monitor de cristal líquido (LCD), um monitor de plasma, um monitor de diodo de emissão de luz orgânica (OLED), ou outro tipo de dispositivo de exibição.
[0047] Em alguns exemplos, o codificador de vídeo 20 e o decodificador de vídeo 30 operam de acordo com um padrão de compressão de vídeo, tal como ISO/IEC MPEG-4 Visual e ITU-T H.264 (também conhecido como ISO/IEC MPEG-4 AVC), incluindo suas extensões de Codificação de Vídeo Escalonável (SVC) e Codificação de Vídeo de Multivisão (MVC). Em outros exemplos, o codificador de vídeo 20 e o decodificador de vídeo 30 podem operar de acordo com outros padrões de compressão de vídeo, incluindo o padrão de Codificação de Vídeo de Alta Eficiência (HEVC), atualmente em desenvolvimento. Um rascunho do padrão HEVC futuro, referido como "HEVC Working Draft 9" é descrito em Bross et al., "High Efficiency Video Coding (HEVC) text specification draft 9", Joint Collaborative Team on Video Coding (JCT-VC) de ITU-T SG 16 WP3 e ISO/IEC JTC1/SC29/WG11, 11o. Encontro, Xangai, China, outubro de 2012, que, desde 7 de novembro de 2012, pode ser descarregado a partir de http://phenix-int- evry.fr/jct/doc end user/documents/11 Shanghai/wg11/JCTVC- K1003-v8.zip, o conteúdo total do qual é incorporado aqui por referência. As técnicas dessa descrição, no entanto, não estão limitadas a qualquer padrão de codificação em particular ou técnica.
[0048] A figura 1 é meramente um exemplo e as técnicas dessa descrição podem ser aplicadas às configurações de codificação de vídeo (por exemplo, codificação de vídeo e decodificação de vídeo) que não incluem necessariamente qualquer comunicação de dados entre os dispositivos de codificação de vídeo e decodificação de vídeo. Em outros exemplos, os dados são recuperados a partir de uma memória local, sequenciados através de uma rede, ou similares. Um dispositivo de codificação de vídeo pode codificar e armazenar dados na memória, e/ou um dispositivo de decodificação de vídeo pode recuperar e decodificar dados da memória. Em muitos exemplos, a codificação e decodificação de vídeo é realizada por dispositivos que não se comunicam um com o outro, mas simplesmente codificam os dados para a memória e/ou recuperam e decodificam os dados da memória.
[0049] O codificador de vídeo 20 e o decodificador de vídeo 30 podem, cada um, ser implementados como qualquer um dentre uma variedade de conjuntos de circuitos adequados, tal como um ou mais microprocessadores, processadores de sinal digital (DSPs), circuitos integrados específicos de aplicativo (ASICs), conjuntos de porta programáveis em campo (FPGAs), lógica discreta, hardware ou qualquer combinações dos mesmos. Se as técnicas forem implementadas parcialmente em software, um dispositivo pode armazenar instruções para o software em um meio de armazenamento legível por computador não transitório adequado e pode executar as instruções no hardware utilizando um ou mais processadores para realizar as técnicas dessa descrição. Qualquer um dos acima (incluindo hardware, software, uma combinação de hardware e software, etc.) pode ser considerado um ou mais processadores. Cada um dentre o codificador de vídeo 20 e o decodificador de vídeo 30 pode ser incluído em um ou mais codificadores ou decodificadores, qualquer um dos quais pode ser integrado como parte de um codificador/decodificador (CODEC) combinados em um dispositivo respectivo.
[0050] Essa descrição pode se referir geralmente ao codificador de vídeo 20 "sinalizando" determinada informação. O termo "sinalizando" pode se referir geralmente à comunicação de elementos de sintaxe e/ou outros dados utilizados para decodificar os dados de vídeo comprimidos. Tal comunicação pode ocorrer em tempo real ou quase real. Alternativamente, tal comunicação pode ocorrer através de um espaço de tempo, tal como podendo ocorrer quando do armazenamento de elementos de sintaxe em um meio de armazenamento legível por computador em uma sequência de bits codificada no momento da codificação, que um dispositivo de decodificação de vídeo pode então recuperar em qualquer momento posterior depois de ser armazenado nesse meio.
[0051] Como mencionado de forma breve acima, o codificador de vídeo 20 codifica os dados de vídeo. Os dados de vídeo podem compreender uma ou mais imagens. Cada uma das imagens é uma imagem estática formando parte de um vídeo. Quando o codificador de vídeo 20 codifica os dados de vídeo, o codificador de vídeo 20 pode gerar uma sequência de bits. A sequência de bits pode incluir uma sequência de bits que forma uma representação codificada dos dados de vídeo. A sequência de bits pode incluir imagens codificadas e dados associados. Uma imagem codificada é uma representação codificada de uma imagem. Os dados associados podem incluir conjuntos de parâmetro de sequência (SPSs), conjuntos de parâmetro de imagem (PPSs), e outras estruturas de sintaxe. Um SPS pode conter parâmetros aplicáveis a zero ou mais sequências de imagens. Um PPS pode conter parâmetros aplicáveis a zero ou mais imagens.
[0052] Para gerar uma representação codificada de uma imagem, o codificador de vídeo 20 pode dividir a imagem em uma grade de blocos de árvore de codificação (CTBs). Em alguns casos, um CTB pode ser referido como um "bloco de árvore", uma "unidade de codificação maior" (LCU) ou uma "unidade de árvore de codificação". Os CTBs de HEVC podem ser amplamente análogos aos macroblocos de outros padrões, tal como H.264/AVC. No entanto, um CTB não está necessariamente limitado a um tamanho particular e pode incluir uma ou mais unidades de codificação (CUs).
[0053] Cada um dos CTBs pode ser associado com um bloco diferente de mesmo tamanho de pixels dentro da imagem. Cada pixel pode compreender uma amostra de luminescência (luma) e também pode compreender duas amostras de crominância (croma). Dessa forma, cada CTB pode ser associado com um bloco de amostras de luminescência e dois blocos de amostras de crominância. Para facilitar a explicação, essa descrição pode fazer referência a um conjunto bidimensional de pixels como um bloco de pixel e pode fazer referência a um conjunto bidimensional de amostras como um bloco de amostra. O codificador de vídeo 20 pode utilizar a divisão de quadtree para dividir o bloco de pixel associado com um CTB em blocos de pixel associados com CUs, dessa forma o nome "blocos de árvore de codificação".
[0054] Os CTBs de uma imagem podem ser agrupados em uma ou mais fatias. Em alguns exemplos, cada uma das fatias inclui um número inteiro de CTBs. Como parte da codificação e uma imagem, o codificador de vídeo 20 pode gerar representações codificadas de cada fatia da imagem (isso é, fatias codificadas). Para gerar uma fatia codificada, o codificador de vídeo 20 pode codificar cada CTB da fatia para gerar representações codificadas de cada CTB da fatia (isso é, CTBs codificados).
[0055] Para gerar um CTB codificado, o codificador de vídeo 20 pode realizar de forma recursiva divisão de quadtree no bloco de pixel associado com um CTB para dividir o bloco de pixel em blocos de pixel progressivamente menores. Cada um dos blocos de pixel menores pode ser associado com uma CU. Uma CU dividida pode ser uma CU cujo bloco de pixel é dividido em blocos de pixel associados com outras CUs. Uma CU não dividida pode ser uma CU cujo bloco de pixel não é dividido em blocos de pixel associados com outras CUs.
[0056] O codificador de vídeo 20 pode gerar uma ou mais unidades de previsão (PUs) para cada CU não dividida. Cada uma das PUs de uma CU pode ser associada com um bloco de pixel diferente dentro do bloco de pixel da CU. O codificador de vídeo 20 pode gerar blocos de pixel previsíveis para cada PU da CU. O bloco de pixel previsível de uma PU pode ser um bloco de pixels.
[0057] O codificador de vídeo 20 pode utilizar a intraprevisão ou interprevisão para gerar o bloco de pixel de previsão para uma PU. Se o codificador de vídeo 20 utilizar a intraprevisão para gerar o bloco de pixel de previsão de uma PU, o codificador de vídeo 20 pode gerar o bloco de pixel de previsão da PU com base nos pixels decodificados da imagem associada com a PU. Se o codificador de vídeo 20 utilizar a interprevisão para gerar o bloco de pixel de previsão da PU, o codificador de vídeo 20 pode gerar o bloco de pixel de previsão da PU com base nos pixels decodificados de uma ou mais imagens além da imagem associada com a PU.
[0058] Depois que o codificador de vídeo 20 gera os blocos de pixel previstos para uma ou mais PUs de uma CU, o codificador de vídeo 20 pode gerar dados residuais para a CU com base nos blocos de pixel previstos par as PUs da CU. Os dados residuais para a CU podem indicar as diferenças entre amostras nos blocos de pixel previstos para as PUs da CU e o bloco de pixel original da CU.
[0059] Cada pixel no bloco de pixel residual da CU pode incluir uma amostra Y, uma amostra U e uma amostra V. Dessa forma, o bloco de pixel residual da CU pode compreender um bloco de amostra residual que inclui as amostras Y do bloco de pixel residual da CU, um bloco de amostra residual U que inclui as amostras U do bloco de pixel residual da CU, e um bloco de amostra residual V que inclui as amostras V do bloco de pixel residual da CU.
[0060] Adicionalmente, como parte da realização de uma operação de codificação em uma CU não dividida, o codificador de vídeo 20 pode utilizar a divisão quadtree para decompor a CU em uma ou mais unidades de transformação (TUs). Cada uma das TUs pode ser associada com um bloco de amostras residuais Y, um bloco de amostras residuais U, e um bloco de amostras residuais V. O bloco de amostras residuais Y associado com a TU pode ser um sub-bloco do bloco de amostras residuais Y da CU. O bloco de amostras residuais U pode ser um sub-bloco do bloco de amostras residuais U da CU. O bloco de amostras residuais V pode ser um sub-bloco do bloco de amostras residuais V da CU.
[0061] O codificador de vídeo 20 pode utilizar um quadtree residual (RQT) para sinalizar como a CU é dividida nas TUs. Em outras palavras, o codificador de vídeo 20 pode incluir, em uma sequência de bits, dados que representam uma RQT que indica como a CU é dividida em TUs. A RQT pode compreender uma hierarquia de nós. Os nós folha da RQT podem corresponder a TUs da CU. Cada nó da RQT pode ser associado com um indicador de divisão. Se o indicador de divisão de um nó for igual a 1, o nó possui quatro nos criança. Se o indicador de divisão de um nó for igual a 0, o nó não possui nós criança. Um primeiro nó pode ser um nó criança de um segundo nó se os primeiro e segundo nós forem conectados na RQT e o primeiro nó estiver um nível abaixo na RQT do que o segundo nó. Os níveis da RQT podem ser numerados a partir de 0 para cima, com o nível 0 correspondendo ao nó raiz, o nível 1 correspondendo aos nós criança do nó raiz, o nível 2 correspondendo aos nós netos do nó raiz, e assim por diante.
[0062] A figura 2A é um diagrama conceitual ilustrando uma decomposição de quadtree ilustrativa de um bloco de pixels residuais 38 associados com uma CU. No exemplo da figura 2A, o bloco de pixel residual 38 é dividido em um bloco de pixel residual superior esquerdo, um bloco de pixel residual superior direito, um bloco de pixel residual inferior esquerdo, e um bloco de pixel residual inferior direito. As linhas internas na figura 2A indicam um resultado ilustrativo da decomposição de bloco de transformação de acordo com uma estrutura de quadtree. Esse resultado é apenas uma dentre muitas possíveis decomposições. No exemplo da figura 2A, existem três níveis de decomposições de transformação. No nível 0 (isso é, profundidade 0), o bloco de pixel residual 38 é dividido em quatro blocos de um quarto de tamanho. Então, no nível 1 (isso é, profundidade 1), o primeiro bloco de transformação de um quarto de tamanho é adicionalmente dividido em quatro blocos de transformação de 1/6 de tamanho (divisão = 1). Em outras palavras, o bloco de pixel residual superior esquerdo é adicionalmente dividido em quatro blocos de pixel residual menores, rotulados 40, 42, 44 e 46. Não existe mais divisão para sub-blocos 40, 42, 44 e 46. No exemplo da figura 2A, o bloco de pixel residual superior direito é rotulado 48, o bloco de pixel residual inferior esquerdo é rotulado 50, e o bloco de pixel residual inferior direito é rotulado 52. Não existe mais divisão para sub-blocos 48, 50 e 52.
[0063] A figura 2B é um diagrama conceitual ilustrando um esquema de decomposição de quadtree da figura 2A, descrito utilizando uma RQT 54. No exemplo da figura 2B, cada círculo corresponde a um nó na RQT 54. Cada nó é associado com um indicador de divisão que indica se o bloco de pixel residual associado com o nó foi dividido em quatro blocos de pixel residuais menores. Os nós folha de RQT 54 correspondem aos blocos de pixel residuais rotulados da figura 2A. Na prática, a determinação de se a divisão de um bloco de transformação pode ser baseada em uma otimização de distorção de taxa.
[0064] O codificador de vídeo 20 pode realizar as operações de transformação em blocos de amostra residuais Y, U e V associados com TUs de uma CU. Quando o codificador de vídeo 20 realiza a operação de transformação em um bloco de amostra residual Y, o codificador de vídeo 20 pode aplicar uma ou mais transformações para o bloco de amostra residual Y para gerar um bloco de coeficiente Y. Quando o codificador de vídeo 20 realiza a operação de transformação em um bloco de amostra residual U, o codificador de vídeo 20 pode aplicar uma ou mais transformações para o bloco de amostra residual U para gerar um bloco de coeficiente U. Quando o codificador de vídeo 20 realiza a operação de transformação em um bloco de amostra residual V, o codificador de vídeo 20 pode aplicar uma ou mais transformações ao bloco de amostra residual V para gerar um bloco de coeficiente V. Conceitualmente, um bloco de coeficiente pode ser uma matriz bidimensional (2D) de coeficientes.
[0065] Depois da geração de um bloco de coeficiente, o codificador de vídeo 20 pode quantizar o bloco de coeficiente. A quantização se refere geralmente a um processo no qual os coeficientes são quantizados para reduzir possivelmente a quantidade de dados utilizada para representar os coeficientes, fornecendo compressão adicional. Depois que o codificador de vídeo 20 quantiza um bloco de coeficiente, o codificador de vídeo 20 pode realizar uma operação de codificação por entropia no bloco de coeficiente. Por exemplo, o codificador de vídeo 20 pode realizar a Codificação Aritmética Binária Adaptativa de Contexto (CABAC) nos dados nos blocos de coeficiente.
[0066] Quando o codificador de vídeo 20 realiza uma operação CABAC em um elemento de sintaxe, o codificador de vídeo pode converter o elemento de sintaxe em um código binário. Em outras palavras, o codificador de vídeo 20 pode binarizar o elemento de sintaxe. Adicionalmente, o codificador de vídeo 20 pode selecionar um contexto de codificação dentre os múltiplos contextos de codificação disponíveis. O contexto de codificação pode indicar uma probabilidade esperada de um "compartimento" do elemento de sintaxe binarizado. Um compartimento pode ser um bit único do elemento de sintaxe binarizado. O codificador de vídeo 20 pode utilizar o contexto de codificação selecionado para gerar um número que representa o elemento de sintaxe. O codificador de vídeo 20 pode enviar esse número, juntamente com outros elementos de sintaxe codificados, em uma sequência de bits. A sequência de bits pode incluir uma versão codificada dos dados de vídeo.
[0067] O decodificador de vídeo 30 pode receber a sequência de bits gerada pelo codificador de vídeo 20. Adicionalmente, o decodificador de vídeo 30 pode analisar a sequência de bits para extrair os elementos de sintaxe da sequência de bits. O decodificador de vídeo 30 pode reconstruir as imagens dos dados de vídeo com base nos elementos de sintaxe extraídos da sequência de bits. O processo para reconstrução de dados de vídeo com base nos elementos de sintaxe pode ser geralmente alternado ao processo realizado pelo codificador de vídeo 20 para gerar os elementos de sintaxe.
[0068] O decodificador de vídeo 30 pode gerar blocos de pixel previstos para PUs de uma CU com base pelo menos em parte nos elementos de sintaxe associados com a CU. Adicionalmente, o decodificador de vídeo 30 pode quantizar de forma inversa os blocos de coeficiente associados com TUs da CU. O decodificador de vídeo 30 pode realizar as transformações inversas nos blocos de coeficiente para reconstruir os blocos de amostra residuais associados com as TUs da CU. O decodificador de vídeo 30 pode reconstruir o bloco de pixel da CU com base nos blocos de pixel previstos e blocos de pixel residuais.
[0069] Em alguns casos, pode haver coeficientes diferentes de zero em um bloco de coeficiente. Em outras palavras, todos os coeficientes em um bloco de coeficientes podem ser iguais a zero. Se não existir qualquer coeficiente diferente de zero em um bloco de coeficiente, pode não haver necessidade para o codificador de vídeo 20 sinalizar os valores de coeficientes no bloco de coeficiente. Essa descrição pode utilizar o termo "bloco de coeficiente significativo" para fazer referência a um bloco de coeficiente que inclui pelo menos um coeficiente diferente de zero.
[0070] De acordo, o codificador de vídeo 20 pode associar CBFs Y com os nós folha da RQT para a CU. Para cada nó folha respectivo da RAT, se CBF Y do nó folha respectivo for igual a 1, o bloco de coeficiente Y associado com o nó folha respectivo inclui pelo menos um coeficiente diferente de zero. Se CBF Y do nó folha respectivo for igual a 0, o bloco de coeficiente Y associado com o nó folha respectivo não inclui quaisquer coeficientes diferentes de zero. Os nós não folha da RQT não são associados com CBFs Y.
[0071] O codificador de vídeo 20 pode codificar CBFs U e CBFs V de uma forma hierárquica. Se CBF U de um nó em particular for igual a 0 e o nó particular for um nó folha, o nó particular não está associado a um bloco de coeficiente U significativo. Se CBF U de um nó particular for igual a 0 e o nó particular não for um nó folha, nenhum nó descendente do nó particular é associado com um bloco de coeficiente U significante. Visto que o decodificador de vídeo 30 pode determinar, com base no CBF U do nó particular sendo igual a 0 que nenhum nó descendente do nó particular é associado com um bloco de coeficiente U significante, pode não ser necessário que o codificador de vídeo 20 sinalize CBFs U para os nós descendentes do nó particular.
[0072] Por outro lado, se CBF U de um nó particular for igual a 1 e o nó particular for um nó folha, o nó particular é associado com um bloco de coeficiente U significante. Se CBF U de um nó particular for igual a 1 e o nó particular não for um nó folha, pelo menos um nó descendente do nó particular é associado com um bloco de coeficiente U significante. Visto que pelo menos um nó descendente do nó particular é associado com um bloco coeficiente U significante, cada nó criança do nó particular pode ser associado com um CBF U.
[0073] Se CBF V for um nó particular for igual a 0 e o nó particular for um nó folha, o nó particular não é associado com um bloco coeficiente V significante. Se CBF V CE um nó particular for igual a 0 e o nó particular não for um nó folha, nenhum nó descendente do nó particular é associado com um bloco de coeficiente V significante. Visto que o decodificador de vídeo 30 pode determinar, com base no CBF V do nó particular sendo igual a 0 que nenhum nó descendente do nó particular é associado com um bloco de coeficiente V significante, pode não ser necessário que o codificador de vídeo 20 sinalize CBFs V para os nós descendentes do nó particular.
[0074] Por outro lado, se CBF V de um nó particular for igual a 1 e o nó particular for um nó folha, o nó particular é associado com um bloco de coeficiente V significante. Se o CBF V de um nó particular for igual a 1 e o nó particular for um nó folha, pelo menos um nó descendente do nó particular é associado com um bloco de coeficiente V significante. Visto que pelo menos um nó descendente do nó particular é associado com um bloco de coeficiente V significante, cada nó criança do nó particular pode ser associado com um CBF V.
[0075] Em alguns casos, um bloco de pixel residual de uma CU pode ser maior do que um tamanho de TU máximo permitido. Por exemplo, um bloco de pixel residual de uma CU pode ser de 64 x 64 enquanto o tamanho máximo permitir de TU pode ser 32 x 32. Quando um bloco de pixel residual de uma CU é maior do que o tamanho máximo permitido de TU, o decodificador de vídeo 30 pode determinar automaticamente que a CU é dividido em pelo menos quatro TUs que são do tamanho máximo permitido TU ou menor. Visto que o decodificador de vídeo 30 pode determinar automaticamente que a CU é dividida em pelo menos quatro TUs, pode não ser necessário que o codificador de vídeo 20 associe um indicador de divisão com o nó raiz da RQT CU. Ademais, o codificador de vídeo 20 não associa CBFs U ou CBFs V com o nó raiz da RQT CUs.
[0076] A figura 3 é um diagrama conceitual que ilustra a codificação de um quadtree residual ilustrativo (RQT) 56. Nesse exemplo da figura 3, cada nó de RQT 56 é representado como um círculo. Para cada nó (isso é, em cada nível), o codificador de vídeo 20 codifica um indicador de divisão. No exemplo da figura 3, e um indicador de divisão for igual a 1, o nó possui quatro nós criança e o bloco de pixel residual associado com o nó é dividido em quatro blocos de pixel residuais de tamanho igual (sub-blocos). Se o indicador de divisão de um nó for igual a 0, o nó não possui nós criança e o bloco de pixel residual associado com o nó não é dividido em blocos de pixel residuais menores. Cada nó de RQT 56 pode ser associado com um CBF U e um CBF V, como descrito acima. Em outras palavras, em cada nível, dois outros elementos de sintaxe podem ser transmitidos. Um é cbfU (indicador de bloco codificado para componente U) e o outro é cbfV (indicador de bloco codificado para componente V). Esses dois elementos de sintaxe podem ser codificados de uma forma hierárquica. Se cbfU = 0, não existe coeficiente de transformação U diferente de zero no bloco de transformação atual (se não for dividido) ou todos os blocos de transformação menores (se o bloco de transformação atual for dividido em blocos menores). No último caso (isso é, o bloco de transformação atual é dividido adicionalmente), nenhum cbfU pode precisar ser transmitido para esses blocos divididos adicionais. O processo de codificação de cbfV pode ser igual.
[0077] Se, para um bloco, o indicador de divisão transmitido tiver o valor 0, esse bloco é um "nó folha" na RQT. No nó folha, CBF Y é transmitido, e CBF U e CBF V também podem ser transmitidos (dependendo do valor de CBF U e CBF V em níveis mais altos de RQT,isso é, se o nível mais alto CBF U/CBF V for 0, então pode não haver necessidade de se transmitir nesse nível inferior). Como ilustrado no exemplo da figura 3, cada nó folha pode ser associado com um CBF Y. O CBF Y de um nó indica se o nó está associado com um bloco de coeficiente Y significante. Adicionalmente, se um nó folha for associado com os blocos de coeficiente Y, U e V significantes, o nó folha pode ser associado com os elementos de sintaxe que representam os blocos de coeficiente Y, U e/ou V significantes. Em outras palavras, no nó folha, os coeficientes de transformação são codificados para componentes Y, U, V (coeffY, CoeffU, CoeffV) se o indicador correspondente (cbfY, cbfU, cbfY) não for igual a zero.
[0078] Em alguns casos, o decodificador de vídeo 30 pode determinar (isso é, inferir) o valor de um elemento de sintaxe de um nó a partir de um ou mais elementos de sintaxe já decodificados no mesmo nível de RQT que o nó ou um nível mais alto de RQT mais alto do que o nível do nó. A determinação dos valores de elementos de sintaxe dessa forma pode aumentar a eficiência de codificação. Por exemplo, se um CBF U (ou um CBF V) de um nó no nível k for igual a 0, então o decodificador de vídeo 30 pode determinar que todos os CBFs U (ou CBFs V) no nível k + 1 e todos os níveis inferiores são iguais a zero. Em outro exemplo, se um nó for associado com um bloco de pixel residual que é maior do que um tamanho TU máximo permitido, o decodificador de vídeo 30 pode determinar que o indicador de divisão do nó é igual a 1. Em outro exemplo, o decodificador de vídeo 30 pode determinar que um indicador de divisão de um nó raiz é igual a 1 se a CU associada com o nó raiz for dividida em quatro PUs e codificada utilizando a intraprevisão (isso é, a CU é uma CU intra N x N). Em outro exemplo, o decodificador de vídeo 30 pode determinar que um indicador de divisão de um nó é igual a 0 se o tamanho do bloco de pixel residual associado com o nó for igual a um tamanho máximo permitido de TU (mínimo disponível). Em outro exemplo, o decodificador de vídeo 30 pode determinar que um indicador de divisão de um nó seja igual a 0 se a profundidade na RQT for igual a uma profundidade máxima permitida para o tamanho da CU associada com RQT. Em outro exemplo, se a CU for interprevista, o decodificador de vídeo 30 pode determinar que CBF Y de um quarto nó (isso é, último) no nível k da RQT é iguala a 1 se os primeiros três nós (sub-blocos de um bloco de um quarto de divisão) no nível k de RQT todos possuírem CBF Y, CBF U, e CBF V iguais a 0. O tamanho máximo de CU e o tamanho máximo de TU podem ser decididos pela codificação de parâmetros registrados no codificador de vídeo 20. De forma similar, o decodificador de vídeo 30 pode determinar o tamanho máximo de CU e o tamanho máximo permitido de TU com base nos parâmetros de codificação registrados no decodificador de vídeo 30. Em alguns exemplos, o tamanho máximo permitido de CU é maior do que o tamanho máximo permitido de TU.
[0079] A figura 4A é um diagrama conceitual que ilustra um bloco de amostras de luminescência residual ilustrativo (Y) 60 de uma CU de 64 x 64. A figura 4B é um diagrama conceitual que ilustra um bloco de amostras de crominância residual ilustrativo 62 de uma CU de 64 x 64. O codificador de vídeo 20 pode amostrar descendentemente as amostras de crominância de uma CU por um fator de 2:1, resultando em um bloco de amostras de crominância residual para a CU que possui metade da largura e metade da altura do bloco de amostras Y residual correspondente para a mesma CU. Visto que o sistema visual humano é menos sensível a mudanças em crominância do que as mudanças de luminescência, tal amostragem descendente não reduz necessariamente a qualidade visual.
[0080] No exemplo das figuras 4A e 4B, o tamanho máximo de CU é considerado 64 x 64 e o tamanho máximo permitido de TU é considerado como sendo 32 x 32. Visto que a CU é maior do que o tamanho máximo permitido de TU, o codificador de vídeo 20 divide o bloco de amostras Y residual 60 em quatro blocos de amostras residuais menores, Y0...Y3. Apesar de não ilustrado nos exemplos das figuras 4A e 4B, o codificador de vídeo 20 pode dividir os blocos de amostra residual Y0...Y3 ainda mais.
[0081] O codificador de vídeo 20 pode dividir o bloco de amostras de crominância 62 (de tamanho 32 x 32) da mesma forma que o codificador de vídeo 20 divide o bloco de amostras Y. Isso é, o bloco de crominância dividido com luminescência. Por exemplo, se o codificador de vídeo 20 dividir um bloco de amostras Y residual em quatro blocos de amostras Y residuais menores, o codificador de vídeo 20 também divide os blocos de amostras de crominância residuais correspondentes em quatro blocos de amostras de crominância residuais menores. Como ilustrado no exemplo das figuras 4A, o codificador de vídeo 20 dividiu o bloco de amostras Y residuais 60 em quatro blocos de amostras Y residuais menores. Dessa forma, no exemplo da figura 4B, o codificador de vídeo 20 dividiu o bloco de amostras de crominância residual 62 em quatro blocos de amostras de crominância residuais menores.
[0082] Visto que o bloco de amostras Y residual 60 é maior do que um tamanho máximo permitido de TU, o codificador de vídeo 20 não é associado com um CBF U ou um CBF V de um nó raiz da RQT para a CU. Em outras palavras, a codificação de CBFs de crominância não começa a partir de um nível raiz de CU (isso é, profundidade 0 da RQT). Ao invés disso, o codificador de vídeo 20 pode começar associando CBF U e CBFs V com nós em um nível de RQT que corresponde ao tamanho de TU máximo permitido. Em outras palavras, a codificação de CBFs de crominância começa no nível que corresponde ao tamanho máximo de TU. No exemplo das figuras 4A e 4B, o bloco de amostras Y residual 60 tem 64 x 64 e o tamanho máximo permitido de TU é de 32 x 32. Dessa forma, o nível 1 de RQT da CU corresponde ao tamanho máximo permitido de TU. Como resultado disso,a nos exemplos das figuras 4A e 4B, o codificador de vídeo 20 pode começar a codificação de CBFs de crominância (isso é, CBFs U e CBFs V) nos nós no nível 1 da RQT da CU. Como resultado disso, o codificador de vídeo 20 codifica uma CBF U para U0 e os CBFs U de seus sub-blocos (isso é, os sub-blocos do quarto superior esquerdo de toda a CU) de forma hierárquica, e então um CBF U para U1 e CBFs U de seus sub-blocos, e assim por diante.
[0083] A implementação do codificador de vídeo 20 descrito acima pode utilizar um método de codificação diferente para CBFs Y e CBFs de crominância (isso é, CBFs U e CBFs V). Adicionalmente, a implementação do codificador de vídeo 20 descrito acima só se aplica à codificação hierárquica dos CBFs de crominância em alguns níveis de RQT. Isso pode aumentar a complexidade do codificador de vídeo 20.
[0084] As técnicas dessa descrição podem remediar esses problemas e aperfeiçoar a codificação de CBF. De acordo com as técnicas dessa descrição, a sinalização de CBFs de crominância pode ter início no nó raiz do quadtree residual associado com a CU atual, mesmo se a CU atual for maior do que uma tamanho máximo permitido de TU. A CU atual pode ser a CU que está sendo codificada no momento. A sinalização de CBFs de crominância dessa forma, pode simplificar as implementações do codificador de vídeo 20 e do decodificador de vídeo 30.
[0085] Por exemplo, nos codecs de vídeo anteriores, como HEVC, a codificação hierárquica dos CBFs de crominância começa das maiores transformações permitidas, maxTransSize. Se no nível k o tamanho de bloco for maior que maxTransSize, nenhum CBF de crominância é codificado no nível k. Por exemplo, o tamanho máximo permitido TU (maxTransSize) pode ter 32 x 32 e o tamanho da CU atual pode ser de 64 x 64. Nesse exemplo, um codificador de vídeo pode dividir automaticamente o bloco visto que o tamanho de transformação maior é menor do que o tamanho de bloco atual e um decodificador de vídeo pode inferir o indicador dividido é igual a 1. Então, no próximo nível, isso é, o bloco de 32 x 32, um CBF de crominância (por exemplo, CBF U) é codificado para cada bloco de 32 x 32. De acordo com as técnicas dessa descrição, a codificação de CBFs de crominância pode sempre iniciar a partir do nó raiz da RQT da CU (isso é, profundidade 0 da RQT). Por exemplo, o tamanho máximo de transformação é de 32 x 32 e a CU atual é 64 x 64. Nesse exemplo, o codificador de vídeo 20 pode sinalizar o valor de um CBF U para toda a CU 64 x 64 (isso é, essa sinalização é correspondente ao nível de raiz CU). Em outras palavras, o nó raiz de RQT (isso é, o nó que corresponde à CU 64 x 64 como um todo) pode ser associado com um CBF U que indica se qualquer TU da CU atual é associada com um bloco de coeficiente U significativo. CBFU = 1 pode especificar que exista pelo menos um coeficiente diferente de zero nos sub-blocos, e CBFU pode ser transmitida a partir de cada um dos quatro sub-blocos 32 x 32. CBFU = 0 pode especificar que todos os coeficientes nos quatro sub-blocos sejam iguais a zero, e, dessa forma, nenhum CBFU pode precisar ser transmitido. O mesmo pode ser aplicado a CBFV. Isso é, o nó raiz de RQT pode ser associado com CBF V que indica se qualquer TU da CU atual está associada com um bloco de coeficiente V significativo.
[0086] Visto que CBFs U ou CBFs V são sinalizados de forma hierárquica para cada nó respectivo na RQT, o nó respectivo não inclui um CBF U a menos que o nó respectivo seja o nó raiz ou um CBF U de um nó parente do nó respectivo indique que um nó descendente do nó parente está associado com um bloco de crominância U significante. O nó respectivo não inclui um CBF V a menos que o nó respectivo seja o nó raiz ou um CBF V do nó parente do nó respectivo indique que um nó descendente do nó parente seja associado com um bloco de crominância V significante.
[0087] Dessa forma, de acordo com as técnicas dessa descrição, para cada nó respectivo de RQT, se o nó respectivo possui rum CBF para um componente de crominância em particular e o CBF para o componente de crominância em particular possuir um primeiro valor, o nó respectivo ou um nó descendente do nó respectivo é associado com um bloco de coeficiente significante que é baseado em amostras do componente de crominância em particular. Como indicado acima, essa descrição pode utilizar o termo "bloco de coeficiente significante" para fazer referência a um bloco de coeficiente que inclui pelo menos um coeficiente diferente de zero. Se o nó respectivo possuir um CBF para o componente de crominância em particular e o CBF para o componente de crominância em particular possuir um segundo valor, nem uma TU que corresponde ao nó respectivo nem qualquer TU que corresponda a qualquer nó descendente do nó respectivo é associado com um bloco de coeficiente significante que é baseado em amostras do componente de crominância em particular. Se o nó respectivo possuir um CBF para o componente de crominância em particular e CBF para o componente de crominância em particular possuir um segundo valor, nenhum nó descendente do nó respectivo é associado com um CBF para o componente de crominância em particular.
[0088] Em alguns codecs de vídeo existentes, como HEVC, CBFs de crominância (isso é, CBF Us e CBF Vs) são codificados de forma hierárquica e CBFs de luminescência (isso é, CBFs Y) são codificados apenas nos nós folha. Em contrate, de acordo com as técnicas dessa descrição, CBFs Y podem ser sinalizados, em cada nível, de forma hierárquica, similar a CBFs U e V. Por exemplo, o codificador de vídeo 20 pode, em cada nível, sinalizar um CBF U e um CBF V. Se CBF U estiver no nível 0 (isso é, o nível do nó raiz dentro de RQT do bloco atual), não existem coeficientes diferentes de zero nos blocos de coeficiente U do bloco atual de blocos adicionalmente divididos do bloco atual, e, dessa forma, nenhum CBF U a mais precisará ser transmitido para os blocos divididos adicionais. O mesmo se aplica aos CBFs V. Adicionalmente, o codificador de vídeo 20 pode sinalizar CBFs Y da mesma forma hierárquica que CBFs U e V. Dessa forma, a codificação de CBFs para luminescência e crominância pode ser unificada. Isso é, para cada nó respectivo de uma RQT, se CBF Y do nó respectivo for igual a 1, um bloco de coeficiente Y associado com o nó respectivo ou um bloco de coeficiente Y associado com um nó descendente do nó respectivo inclui pelo menos um coeficiente diferente de zero. Se CBF Y do nó respectivo for igual a 0, o nó respectivo não é associado com um bloco de coeficiente Y significante ou nenhum dos nós descendentes dos nós respectivos é associado com um bloco de coeficiente Y significante. Se o CBF Y do nó respectivo for igual a 0, nenhum dos nós descendentes do nó respectivo é associado com um CBF Y. Em outras palavras, se CBF Y do nó respectivo for igual a 0, o codificador de vídeo 20 não sinaliza CBFs Y para quaisquer nós descendentes (isso é, blocos divididos) do nó respectivo. Dessa forma, os nós podem ser associados com CBFs Y de uma forma similar à para CBFs U e V. As técnicas dessa descrição descrita acima referentes à sinalização de CBFs de crominância em um nó raiz de uma RQT também podem ser aplicadas a CBFs Y.
[0089] Em alguns exemplos, o codificador de vídeo 20 pode sinalizar um indicador residual (por exemplo, "cbf_root_flag") em um nó raiz de uma RQT de CU. Se o indicador residual for igual a 0, o decodificador de vídeo 30 pode determinar automaticamente (por exemplo, inferir) que nenhum dos blocos de coeficiente Y, U ou V associados com a CU são significantes (isso é, todos os coeficientes Y, U e V são iguais a 0). Se o indicador residual for igual a 1, pelo menos um bloco de coeficiente Y, U ou V associado com a CU é significante. Ademais, se o indicador residual for igual a 1 e CBF U e CBF V do nó raiz for igual a 0, o decodificador de vídeo 30 pode determinar automaticamente (por exemplo, inferir) que existe pelo menos um bloco de coeficiente Y significante associado com a CU. Em outras palavras, o decodificador de vídeo 30 pode inferir um valor de 1 para CBF Y nesse caso. De acordo, em alguns exemplos, se o indicador residual for igual a 1 e ambos CBF U e CBF V do nó raiz forem iguais a 0, o codificador de vídeo 20 não sinaliza CBF Y para o nó raiz.
[0090] Para qualquer nó de uma RQT em cada nível de RQT, se CBF Y, CBF U e CBF V do nó igual a 0, o decodificador de vídeo 30 pode determinar automaticamente (isso é, inferir) que o nó não possui qualquer nós criança. Em outras palavras, se CBF Y, CBF U e CBF V do nó forem todos iguais a 0, o decodificador de vídeo 30 pode inferir o valor de 0 para o indicador de divisão do nó. De acordo, se CBF Y, CBF U e CBF V de um nó forem todos iguais a 0, o codificador de vídeo 20 pode não sinalizar o indicador dividido do nó.
[0091] Adicionalmente, o codificador de vídeo 20 pode realizar a codificação CABAC nos indicadores divididos dos nós. Para realizar a codificação CABAC em um indicador de divisão, o codificador de vídeo 20 pode selecionar um contexto e codificação para o indicador de divisão e então utilizar o contexto de codificação para codificar com CABAC o indicador de divisão. De acordo com as técnicas dessa descrição, o codificador de vídeo 20 pode selecionar o contexto de codificação para o indicador de divisão de um nó com base pelo menos em parte nos valores de CBF Y, CBF U e/ou CBF V do nó. Em outro exemplo, se um CBF Y for igual a 0, um codificador de vídeo (por exemplo, codificador de vídeo 20 ou decodificador de vídeo 30) pode selecionar um primeiro contexto de codificação para codificar o indicador de divisão. Nesse exemplo, se um CBF Y for igual a 1, o codificador de vídeo pode utilizar um segundo contexto de codificação para codificar o indicador de divisão. Em outro exemplo, o codificador de vídeo pode selecionar o contexto de codificação para o indicador de divisão com base no fato de se a CU é intraprevista ou interprevista. Nesse exemplo, o codificador de vídeo pode determinar um índice de contexto de um contexto de codificação para codificar o indicador de divisão pelo cálculo de CBF Y + 2*blocktype, onde blocktype é igual a 0 para uma CU intraprevista e blocktype é igual a 1 para uma CU interprevista.
[0092] Um codificador de vídeo (por exemplo, codificador de vídeo 20 ou decodificador de vídeo 30) pode realizar CABAC em CBF Y, CBF U e CBF V de um nó de uma RQT. De acordo com as técnicas dessa descrição, o codificador de vídeo pode, em alguns exemplos, utilizar o mesmo contexto de codificação quando da realização de CABAC no CBF Y, CBF U e CBF V de um nó simplificar o processo CABAC e pode acelerar a codificação de vídeo. Em alguns exemplos, o codificador de vídeo pode selecionar o contexto de codificação com base em uma profundidade do nó de RQT. Por exemplo, o codificador de vídeo pode selecionar um primeiro contexto de codificação se o nó estiver no nível 0 da RQT, um segundo contexto de codificação se o nó estiver no nível 1 da RQT, e assim por diante. Em tais exemplos, o codificador de vídeo pode utilizar a equação a seguir para determinar um índice de contexto ctx_idx que identifica um contexto de codificação: ctx_idx = transform_depth Em outros exemplos, o codificador de vídeo pode selecionar o contexto de codificação com base no fato de se o nó é o nó raiz de RQT. Por exemplo, o codificador de vídeo pode utilizar a equação a seguir para determinar um índice de contexto ctx_idx que identifica um contexto de codificação: ctx_idx = transform_depth = 0 ? 0:1
[0093] A figura 5 é um diagrama em bloco que ilustra um codificador de vídeo ilustrativo 20 que é configurado par implementar as técnicas dessa descrição. A figura 5 é fornecida para fins de explicação e não deve ser considerada limitadora das técnicas como amplamente exemplificado e descrito nessa descrição. Para fins de explicação, essa descrição descreve o codificador de vídeo 20 no contexto de codificação HEVC. No entanto, as técnicas dessa descrição podem ser aplicáveis a outros padrões de codificação ou métodos.
[0094] No exemplo da figura 4, o codificador de vídeo 20 inclui uma unidade de processamento de previsão 100, uma unidade de geração residual 102, uma unidade de processamento de transformação 104, uma unidade de quantização 106, uma unidade de quantização inversa 108, uma unidade de processamento de transformação inversa 110, uma unidade de reconstrução 112, uma unidade de filtro 113, um armazenador de imagem decodificada 114, e uma unidade de codificação por entropia 116. A unidade de processamento de previsão 100 inclui uma unidade de processamento de interprevisão 121 e uma unidade de processamento de intraprevisão 126. A unidade de processamento de interprevisão 121 inclui uma unidade de estimativa de movimento 122 e uma unidade de compensação de movimento 124. Em outros exemplos, o codificador de vídeo 20 pode incluir mais, menos ou outros componentes funcionais.
[0095] O codificador de vídeo 20 pode receber dados de vídeo. Para se codificar os dados de vídeo, o codificador de vídeo 20 pode codificar cada fatia de cada imagem dos dados de vídeo. Como parte da codificação de uma fatia, o codificador de vídeo 20 pode codificar cada CTB na fatia. Como parte da codificação de um CTB, a unidade de processamento de previsão 100 pode realizar a divisão de quadtree no bloco de pixel associado com CTB para dividir o bloco de pixel em blocos de pixel progressivamente menores. Os blocos de pixel menores podem ser associados com as Cus. Por exemplo, a unidade de processamento de previsão 100 pode dividir o bloco de pixel de um CTB em quatro sub- blocos igualmente dimensionados, dividindo um ou mais dos sub-blocos em quatro sub-sub-blocos de mesmo tamanho e assim por diante.
[0096] O codificador de vídeo 20 pode codificar Cus de um CTB para gerar representações codificadas das CUs (isso é, CUs codificadas). Como parte da codificação de uma CU, a unidade de processamento de previsão 100 pode dividir o bloco de pixel da CU entre uma ou mais PUs da CU. O codificador de vídeo 20 e o decodificador de vídeo 30 podem suportar vários tamanhos de PU. Assumindo-se que o tamanho de uma CU em particular seja de 2N x 2N, o codificador de vídeo 20 e o decodificador de vídeo 30 podem suportar tamanhos de PU de 2N x 2N ou N x N para intraprevisão, e tamanhos de PU simétricos de 2N x 2N, 2N x N, N x 2N, N x N ou similares para interprevisão. O codificador de vídeo 20 e o decodificador de vídeo 30 podem suportar também a partição assimétrica para tamanhos de PU de 2N x nU, 2N x nD, nL x 2N e nR x 2N para interprevisão.
[0097] A unidade de processamento de interprevisão 121 pode gerar dados de previsão para uma PU pela realização da interprevisão em cada PU de uma CU. Os dados de previsão para a PU podem incluir um bloco de pixel de previsão que corresponde à PU e informação de movimento para a PU. Fatias podem ser fatias I, fatias P ou fatias B. A unidade de interprevisão 121 pode realizar operações diferentes para uma PU de uma CU dependendo de se a PU está em uma fatia I, uma fatia P, uma fatia B. Em uma fatia I, todas as PUs são intraprevistas. Dessa forma, se a PU estiver em uma fatia I, a unidade de interprevisão 121 não realiza a interprevisão na PU.
[0098] Se uma PU estiver em uma fatia P, a unidade de estimativa de movimento 122 pode buscar as imagens de referência em uma lista de imagens de referência (por exemplo, "lista 0") por um bloco de referência para a PU. O bloco de referência da PU pode ser um bloco de pixel que corresponde mais de perto ao bloco de pixel da PU. A unidade de estimativa de movimento 122 pode gerar um índice de imagem de referência que indica a imagem de referência na lista 0 contendo o bloco de referência da PU e um vetor de movimento que indica um deslocamento espacial entre o bloco de pixel da PU e o bloco de referência. A unidade de estimativa de movimento 122 pode enviar o índice de imagem de referência e o vetor de movimento como a informação de movimento da PU. A unidade de compensação de movimento 124 pode gerar o bloco de pixel de previsão da PU com base no bloco de referência indicado pela informação de movimento da PU.
[0099] Se uma PU estiver em uma fatia B, a unidade de estimativa de movimento 122 pode realizar a interprevisão unidirecional ou a interprevisão bidirecional para a PU. Para realizar a interprevisão unidirecional para a PU, a unidade de estimativa de movimento 122 pode buscar as imagens de referência de uma primeira lista de imagens de referência ("lista 0") ou uma segunda lista de imagens de referência ("lista 1") para um bloco de referência para a PU. A unidade de estimativa de movimento 122 pode enviar, como a informação de movimento da PU, um índice de imagem de referência que indica uma posição na lista 0 ou lista 1 da imagem de referência que contém o bloco de referência, um vetor de movimento que indica um deslocamento espacial entre o bloco de pixel da PU e o bloco de referência, e um indicador de direção de previsão que indica se a imagem de referência está na lista 0 ou na lista 1.
[0100] Para realizar a interprevisão bidirecional para uma PU, a unidade de estimativa de movimento 122 pode buscar as imagens de referência na lista 0 por um bloco de referência para a PU e também pode buscar as imagens de referência na lista 1 para outro bloco de referência para a PU. A unidade de estimativa de movimento 122 pode gerar índices de imagem de referência que indicam as posições na lista 0 e lista 1 das imagens de referência que contêm os blocos de referência. Adicionalmente, a unidade de estimativa de movimento 122 pode gerar os vetores de movimento que indicam os deslocamentos espaciais entre os blocos de referência e o bloco de pixel para a PU. A informação de movimento da PU pode incluir os índices de imagem de referência e os vetores de movimento da PU. A unidade de compensação de movimento 124 pode gerar o bloco de pixel de previsão da PU com base nos blocos de referência indicados pela informação de movimento da PU.
[0101] A unidade de processamento intraprevisão 126 pode gerar dados de previsão para uma PU pela realização da intraprevisão na PU. Os dados de previsão para a PU podem incluir um bloco de pixel de previsão para a PU e vários elementos de sintaxe. A unidade de processamento de intraprevisão 126 pode realizar a intraprevisão nas PUs nas fatias I, fatias P e fatias B.
[0102] Para se realizar a intraprevisão em uma PU, a unidade de processamento de intraprevisão 126 pode utilizar múltiplos modos de intraprevisão para gerar múltiplos conjuntos de dados de previsão para a PU. Para utilizar um modo de intraprevisão para gerar um conjunto de dados de previsão para a PU, a unidade de processamento de intraprevisão 126 pode estender amostras a partir dos blocos de amostra das PUs vizinhas através dos mesmos blocos de PU em uma direção associada com o modo de intraprevisão. As PUs vizinhas podem estar acima, acima e para a direita, acima e para a esquerda, ou para a esquerda da PU, considerando-se a ordem de codificação da esquerda para a direita e de cima para baixo para as PUs, CUs e CTBs. A unidade de processamento de intraprevisão 126 pode utilizar vários números de modos de intraprevisão, por exemplo, 33 modos de intraprevisão direcionais. Em alguns exemplos, o número de modos de intraprevisão pode depender do tamanho do bloco de pixel da PU.
[0103] A unidade de processamento de previsão 100 pode selecionar os dados de previsão para PUs de uma CU dentre os dados de previsão gerados pela unidade de processamento interprevisão 121 para as PUs ou os dados de previsão gerados pela unidade de processamento de intraprevisão 126 para as PUs. Em alguns exemplos, a unidade de processamento de previsão 100 seleciona os dados de previsão para as PUs da CU com base nas métricas de taxa/distorção dos conjuntos de dados de previsão. Os blocos de pixel de previsão dos dados de previsão selecionados podem ser referidos aqui como blocos de pixel de previsão selecionados.
[0104] A unidade de geração residual 102 pode gerar, com base no bloco de pixel de uma CU e blocos de pixel de previsão selecionados das PUs da CU, um bloco de pixel residual de uma CU. Por exemplo, a unidade de geração residual 102 pode gerar o bloco de pixel residual da CU de modo que cada amostra no bloco de pixel residual tenha um valor igual a uma diferença entre uma amostra no bloco de pixel da CU e uma amostra correspondente em um bloco de pixel de previsão selecionado de uma PU da CU.
[0105] A unidade de processamento de transformação 104 pode realizar a partição de quadtree para dividir o bloco de pixel residual de uma CU em sub-blocos. Cada bloco de pixel residual não dividido pode ser associado com uma TU diferente da CU. Os tamanhos e posições dos blocos de pixel residuais associados com as TUs de uma CU podem ou não ser baseados nos tamanhos e posições dos blocos de pixel associados com as PUs da CU. Uma estrutura de quadtree conhecida como "quadtree residual" (RQT) pode incluir nós associados com cada um dos blocos de pixel residuais. As TUs de uma CU podem corresponder a nós folha da RQT.
[0106] Visto que os pixels dos blocos de pixel residuais das TUs podem compreender uma amostra Y, uma amostra U e uma amostra V, cada uma das TUs pode ser associada com um bloco de amostras Y, um bloco de amostras U e um bloco de amostras V. A unidade de processamento de transformação 104 pode gerar blocos de coeficiente para cada TU de uma CU pela aplicação de uma ou mais transformações aos blocos de amostra residuais associados com a TU. A unidade de processamento de transformação 104 pode aplicar várias transformações a um bloco de amostras residual associado com uma TU. Por exemplo, a unidade de processamento de transformação 104 pode aplicar uma transformação de cosseno discreto (DCT), uma transformação direcional, ou uma transformação conceitualmente similar a um bloco de amostras residual.
[0107] De acordo com as técnicas dessa descrição, a unidade de processamento de transformação 104 pode gerar dados que representam uma RQT para uma CU. A RQT pode incluir uma hierarquia de nós. O nó raiz de RQT pode ser associado com um CBF U e um CBF V, independentemente de se o bloco de pixel residual da CU é maior do que um tamanho máximo permitido de TU. Adicionalmente, em alguns exemplos, qualquer nó de RQT pode ser associado com um CBF Y.
[0108] A unidade de processamento de transformação 104 pode determinar uma transformação a ser aplicada com base em um tamanho do bloco de amostras residual ao qual a transformação deve ser aplicada. Por exemplo, a unidade de processamento de transformação 104 pode aplicar diferentes transformações dependendo de se o bloco de amostra residual tem 4 x 4, 8 x 8, 16 x 16 ou algum outro tamanho. Em alguns exemplos, a unidade de processamento de transformação 104 pode aplicar transformações aos blocos de amostras residuais de formato retangular, tal como blocos de amostras residuais que possuem 16 x 4, 32 x 8 e assim por diante.
[0109] A unidade de quantização 106 pode quantizar os coeficientes em um bloco de coeficientes associado com uma TU. O processo de quantização pode reduzir a profundidade de bit associada com alguns ou todos os coeficientes. Por exemplo, um coeficiente de bit n pode ser arredondado para baixo para um coeficiente de bit m durante a quantização, onde n é maior que m. A unidade de quantização 106 pode quantizar um bloco de coeficientes associado com uma TU de uma CU com base em um valor de parâmetro de quantização (QP) associado com a CU. O codificador de vídeo 20 pode ajustar o grau de quantização aplicada aos blocos de coeficiente associados com uma CU pelo ajuste do valor QP associado com a CU.
[0110] A unidade de quantização inversa 108 e a unidade de processamento de transformação inversa 110 podem aplicar a quantização inversa e transformação inversa a um bloco de coeficiente, respectivamente, para reconstruir um bloco de amostra residual a partir do bloco de coeficiente. A unidade de reconstrução 112 pode adicionar o bloco de amostra residual reconstruído às amostras correspondentes a partir de um ou mais blocos de amostra de previsão gerados pela unidade de processamento de previsão 100 para produzir um bloco de amostras reconstruído associado com uma TU. Pela reconstrução de blocos de amostra para cada TU de uma CU dessa forma, o codificador de vídeo 20 pode reconstruir o bloco de pixel da CU.
[0111] A unidade de filtro 113 pode realizar uma operação de desbloqueio para reduzir os artefatos de bloqueio no bloco de pixel associados com uma CU. O armazenador de imagem codificada 114 pode armazenar os blocos de pixel reconstruídos depois de a unidade de filtro 113 realizar uma ou mais operações de desbloqueio nos blocos de pixel reconstruídos. A unidade de interprevisão 121 pode utilizar uma imagem de referência que contém os blocos de pixel reconstruídos para realizar a interprevisão nas PUs de outras imagens. Adicionalmente, a unidade de processamento de intraprevisão 126 pode utilizar os blocos de pixel reconstruídos no armazenador de imagem decodificada 114 para realizar a intraprevisão em outras PUs na mesma imagem que a CU.
[0112] A unidade de codificação por entropia 116 pode receber dados de outros componentes funcionais do codificador de vídeo 20. Por exemplo, a unidade de codificação por entropia 116 pode receber blocos de coeficientes da unidade de quantização 106 e pode receber elementos de sintaxe da unidade de processamento de previsão 100. A unidade de codificação por entropia 116 pode realizar uma ou mais operações de codificação por entropia nos dados para gerar dados codificados por entropia. Por exemplo, a unidade de codificação por entropia 116 pode realizar uma operação de codificação de comprimento variável adaptativo de contexto (CAVLC), uma operação CABAC, uma operação de codificação de comprimento de variável para variável (V2V), uma operação de codificação aritmética binária adaptativa de contexto com base em sintaxe (SBAC), uma operação de codificação por Entropia de Partição de Intervalo de Probabilidade (PIPE), uma operação de codificação Golomb Exponencial, ou outro tipo de operação de codificação por entropia nos dados. O codificador de vídeo 20 pode enviar uma sequência de bits que inclui dados codificados por entropia gerados pela unidade de codificação por entropia 116. Por exemplo, a sequência de bits pode incluir dados que representam uma RQT para uma CU.
[0113] A figura 6 é um diagrama em bloco ilustrando um decodificador de vídeo ilustrativo 30 que é configurado para implementar as técnicas dessa descrição. A figura 6 é fornecida para fins de explicação e não de limitação nas técnicas como amplamente exemplificado e descrito nessa descrição. Para fins de explicação, essa descrição descreve o decodificador de vídeo 30 no contexto da codificação HEVC. No entanto, as técnicas dessa descrição podem ser aplicáveis a outros padrões ou métodos de codificação.
[0114] No exemplo da figura 6, o decodificador de vídeo 30 inclui uma unidade de decodificação por entropia 150, uma unidade de processamento de previsão 152, uma unidade de quantização inversa 154, uma unidade de processamento de transformação inversa 156, uma unidade de reconstrução 158, uma unidade de filtro 159, e um armazenador de imagem decodificado 160. A unidade de processamento de previsão 152 inclui uma unidade de compensação de movimento 162 e uma unidade de processamento de intraprevisão 164. Em outros exemplos, o decodificador de vídeo 30 pode incluir mais, menos ou outros componentes funcionais.
[0115] O decodificador de vídeo 30 pode receber uma sequência de bits. A unidade de decodificação por entropia 150 pode analisar a sequência de bit para extrair os elementos de sintaxe da sequência de bits. A unidade de processamento de previsão 152, a unidade de quantização inversa 154, a unidade de processamento de transformação inversa 156, a unidade de reconstrução 158 e a unidade de filtro 159 podem gerar dados de vídeo decodificados com base nos elementos de sintaxe extraídos a partir da sequência de bits.
[0116] A sequência de bits pode compreende uma série de unidades NAL. As unidades NAL da sequência de bits podem incluir unidades NAL de fatia codificadas. Como parte da análise de sequência de bits, a unidade de decodificação por entropia 150 pode extrair e decodificar por entropia os elementos das unidades NAL de fatia codificada. Cada uma das fatias codificadas pode incluir um cabeçalho de fatia e dados de fatia. O cabeçalho de fatia pode conter elementos de sintaxe pertencentes a uma fatia. Os elementos de sintaxe no cabeçalho de fatia podem incluir um elemento de sintaxe que identifica um PPS associado com uma imagem que contém a fatia.
[0117] De acordo com as técnicas dessa descrição, a unidade de decodificação por entropia 150 pode analisar, a partir da sequência de bits, um CBF de um nó raiz de uma RQT de uma CU, independentemente de se um bloco de pixel residual da CU é maior do que um tamanho máximo permitido de TU. Adicionalmente, se o CBF possuir um primeiro valor, a unidade de decodificação por entropia 150 pode analisar, a partir da sequência de bits, um bloco de coeficiente de crominância (por exemplo, um bloco de coeficiente U ou um bloco de coeficiente V) associado com um nó folha da RQT. Se CBF possuir um segundo valor que é diferente do primeiro valor, a unidade de decodificação por entropia 150 não analisa o bloco de coeficiente de crominância a partir da sequência de bits.
[0118] Adicionalmente, o decodificador de vídeo 30 pode realizar uma operação de reconstrução em uma CU não dividida. Para realizar a operação de reconstrução em uma CU não dividida, o decodificador de vídeo 30 pode realizar uma operação de reconstrução em cada TU da CU. Pela realização da operação de reconstrução para cada TU da CU, o decodificador de vídeo 30 pode reconstruía um bloco de pixel residual associado com a CU.
[0119] Como parte da realização de uma operação de reconstrução em uma TU de uma CU, a unidade de quantização inversa 154 pode quantizar de forma inversa, isso é, desquantizar, blocos de coeficiente associados com a TU. A unidade de quantização inversa 154 pode utilizar um valor QP associado com uma CU da TU para determinar um grau de quantização e, da mesma forma, um grau de quantização inversa para unidade de quantização inversa 154 a ser aplicado.
[0120] Depois de a unidade de quantização inversa 154 quantizar de forma inversa um bloco de coeficiente, a unidade de processamento de transformação inversa 156 pode aplicar uma ou mais transformações inversas ao bloco de coeficiente a fim de gerar um bloco de amostras residual associado com a TU. Por exemplo, a unidade de processamento de transformação inversa 156 pode aplicar uma DCT inversa, uma transformação de inteiro inversa, uma transformação Karhunen-Loeve inversa (KLT), uma transformação rotativa inversa, uma transformação direcional inversa ou outra transformação inversa ao bloco de coeficiente.
[0121] Se uma PU for codificada utilizando-se a intraprevisão, a unidade de processamento de intraprevisão 164 pode realizar a intraprevisão para gerar um bloco de amostra de previsão para a PU. A unidade de processamento de intraprevisão 164 pode utilizar um modo de intraprevisão para gerar o bloco de pixel de previsão para a PU com base nos blocos de pixel de PUs espacialmente vizinhas. A unidade de processamento de intraprevisão 164 pode determinar o modo de intraprevisão para a PU com base em um ou mais elementos de sintaxe analisados a partir da sequência de bits.
[0122] A unidade de compensação de movimento 162 pode construir uma primeira lista de imagens de referência (lista 0) e uma segunda lista de imagens de referência (lista 1) com base nos elementos de sintaxe extraídos da sequência de bits. Adicionalmente, se uma PU for codificada utilizando-se a interprevisão, a unidade de decodificação por entropia 150 pode extrair a informação de movimento para a PU. A unidade de compensação de movimento 162 pode determinar, com base na informação de movimento da PU, um ou mais blocos de referência para a PU. A unidade de compensação de movimento 162 pode gerar, com base em um ou mais blocos de referência para a PU, um bloco de pixel de previsão para a PU.
[0123] A unidade de reconstrução 158 pode utilizar os blocos de pixel residuais associados com TUs de uma CU e os blocos de pixel de previsão das PUs da CU, isso é, dados de intraprevisão ou dados de interprevisão, como aplicável, para reconstruir o bloco de pixel da CU. Em particular, a unidade de reconstrução 158 pode adicionar amostras aos blocos de pixel residuais a amostras correspondentes dos blocos de pixel de previsão para reconstruir o bloco de pixel da CU.
[0124] A unidade de filtro 159 pode realizar uma operação de desbloqueio para reduzir os artefatos de bloqueio associados com o bloco de pixel da CU. O decodificador de vídeo 30 pode armazenar o bloco de pixel da CU no armazenador de imagem decodificado 160. O armazenador de imagem decodificado 160 pode fornecer imagens de referência para a compensação de movimento subsequente, intraprevisão e apresentação em um dispositivo de exibição, tal como o dispositivo de exibição 32 da figura 1. Por exemplo, o decodificador de vídeo 30 pode realizar, com base nos blocos de pixel no armazenador de imagem decodificada 160, as operações de intraprevisão ou interprevisão nas PUs de outras CUs.
[0125] A figura 7 é um diagrama conceitual ilustrando uma RQT ilustrativa 200, de acordo com uma ou mais técnicas dessa descrição. A RQT 200 inclui os nós 202218. O nó 202 é um nó raiz de RQT 200. O nó 202 pode corresponder a uma CU. Os nós 204-210 estão em um segundo nível (nível 1) de RQT 200 e os nós 212-218 estão em um terceiro nível (nível 2) da RQT 200. Os nós 206, 208, 210, 212, 214, 216 e 218 são nós folha da RQT 200 e, consequentemente, podem ser TUs da CU. Como indicado pela linha tracejada no exemplo da figura 7, o bloco de pixel residual associado com o nó raiz 202 pode ser maior do que um tamanho máximo permitido de TU.
[0126] De acordo comas técnicas dessa descrição, o codificador de vídeo 20 pode gerar uma sequência de bits que inclui, para o nó raiz 202, um indicador de divisão, um CBF Y, um CBF U, e um CBF V. Como ilustrado no exemplo da figura 7, o indicador de divisão, o CBF Y, o CBF U e o CBF V são, cada um, iguais a 1. Visto que o CBF Y, o CBF U e o CBF V do nó raiz 202 são, cada um, iguais a 1, cada nó criança do nó raiz 202 (isso é, nós 204, 206, 208 e 210) é associado com um indicador de divisão, um CBF Y, um CBF U e um CBF V. No exemplo da figura 7, o CBF Y e o CBF V do nó 204 são ambos iguais a 0. Dessa forma, os nós criança do nó 204 (isso é, os nós 212, 214, 216 e 218) não são associados com blocos de coeficiente Y significantes ou blocos de coeficiente V significantes e não são associados com CBFs Y ou CBFs V.
[0127] A figura 8 é um fluxograma ilustrando uma operação ilustrativa 250 do codificador de vídeo 20, de acordo com as técnicas dessa descrição. O fluxograma da figura 8 e os fluxogramas das figuras seguintes são fornecidos como exemplos. Em outros exemplos, os fluxogramas podem mais, menos ou outras etapas.
[0128] No exemplo da figura 8, o codificador de vídeo 20 gera dados que representam uma RQT para uma CU (252). A CU é maior do que um tamanho máximo permitido de TU. A RQT inclui uma hierarquia de nós. Um nó raiz da RQT corresponde à CU como um todo e os nós folha da RQT correspondem às TUs da CU. O nó raiz é associado com um cBF para um componente de crominância em particular, por exemplo, U ou V. O CBF para o componente de crominância em particular indica se qualquer uma das TUs da CU são associadas com um bloco de coeficiente de crominância significante. O codificador de vídeo 20 envia uma sequência de bits que inclui os dados que representam a RQT para a CU (254).
[0129] A figura 9 é um fluxograma ilustrando uma operação ilustrativa 300 do decodificador de vídeo 30, de acordo com as técnicas dessa descrição. No exemplo da figura 9, o decodificador de vídeo 30 analisa, a partir de uma sequência de bits que inclui uma representação codificada dos dados de vídeo, um CBF de um nó raiz de uma RQT de uma CU (302). Um bloco de pixel da CU é maior do que um tamanho máximo permitido da unidade de transformação (TU). Se o CBF possuir um primeiro valor, o decodificador de vídeo 30 pode analisar, a partir da sequência de bits, um bloco de coeficiente de crominância associado com um nó folha da RQT (304). Se o CBF possuir um segundo valo que é diferente do primeiro valor, o bloco de coeficiente de crominância associado com o nó folha não é analisado a partir da sequência de bits.
[0130] A figura 10A é um fluxograma ilustrando uma operação ilustrativa 340 para analisar os elementos de sintaxe de um nó de uma RQT, de acordo com as técnicas dessa descrição. A operação 340 pode ser uma versão expandida da operação 300 da figura 9. No exemplo da figura 10, a unidade de decodificação por entropia 150 do decodificador de vídeo 30 pode determinar se um nó atual da RQT é o nó raiz da RQT (342). Em alguns exemplos, a unidade de decodificação por entropia 150 pode determinar que o nó atual é o nó raiz se a profundidade do nó atual da RQT for igual a 0.
[0131] Em resposta à determinação de que o nó atual é o nó raiz da RQT ("SIM" em 342), a unidade de decodificação por entropia 150 pode analisar um indicador residual a partir da sequência de bits (344). O indicador residual pode indicar se existe um nó folha da RQT que seja associado com um bloco de coeficiente significante. Se o indicador residual indicar que nenhum nó folha da RQT está associado com um bloco de coeficiente significante, nenhum nó da RQT é associado com um CBF. Depois da análise do indicador residual, a unidade de decodificação por entropia 150 pode determinar se o indicador residual é igual a 0 (346).
[0132] Em resposta à determinação de que o indicador residual é igual a 0 ("SIM" em 346), a unidade de decodificação por entropia 150 pode ter acabado de analisar os elementos de sintaxe do nó atual da RQT. Por outro lado, em resposta à determinação de que o indicador residual é igual a 1 ("NÃO" em 346), a unidade de decodificação por entropia 150 pode analisar CBFs Y, CBFs U e CBFs V do nó atual a partir da sequência de bits (354). CBF Y do nó raiz pode indicar se qualquer nó folha da RQT está associado com um bloco de coeficiente de luminescência significante.
[0133] Em resposta à determinação de que o nó atual não é o nó raiz da RQT ("NÃO" em 342), a unidade de decodificação por entropia 150 pode determinar se um CBF Y do nó parente do nó atual é igual a 1 (356). Se o nó parente do nó atual não possuir um CBF Y, a unidade de decodificação por entropia 150 pode determinar que CBF Y do nó parente do nó atual é igual a 0. Em resposta à determinação de que CBF Y do nó parente do nó atual é igual a 1 ("SIM" em 356), a unidade de decodificação por entropia 150 pode analisar um CBF Y a partir da sequência de bits (358). Dessa forma, o nó raiz é associado com um CBF Y que indica se qualquer uma das TUs da CU estão associadas com um bloco de coeficiente de luminescência significante. Em outras palavras, CBF Y pode indicar que qualquer TU que corresponde ao nó atual ou um nó descendente do nó atual está associado com um bloco de coeficiente Y significante.
[0134] Depois de analisar o CBF Y ou depois de determinar que CBF Y do nó parente do nó atual não é igual a 1 ("NÃO" em 356), a unidade de decodificação por entropia 150 pode determinar se CBF U do nó parente do nó atual é igual a 1 (360). Se o nó parente do nó atual não possuir um CBF U, a unidade de decodificação por entropia 150 pode determinar que CBF U do nó parente do nó atual é igual a 0. Em resposta à determinação de que CBF U do nó parente do nó atual é igual a 1 ("SIM" de 360), a unidade de decodificação por entropia 150 pode analisar um CBF U da sequência de bits (362). CBF U pode indicar se o nó atual ou qualquer nó descendente do nó atual está associado com um bloco de coeficiente U significante.
[0135] Depois de analisar CBF U ou depois de determinar que CBF U do nó parente do nó atual não é igual a 1 ("NÃO" em 360), a unidade de decodificação por entropia 150 pode determinar se um CBF V do nó parente do nó atual é igual a 1 (364). Se o nó parente do nó atual não tiver um CBF V, a unidade de decodificação por entropia 150 pode determinar que CBF V do nó parente do nó atual é igual a 0. Em resposta à determinação de que CBF V do nó parente do nó atual é igual a 1 ("SIM" em 364), a unidade de decodificação por entropia 150 pode analisar um CBF V da sequência de bits (366). CBF V pode indicar se o nó atual ou um nó descendente do nó atual é associado com um bloco de coeficiente V significante.
[0136] Como mencionado acima, a unidade de decodificação por entropia 150 pode realizar CABAC quando da análise de alguns elementos de sintaxe a partir da sequência de bits. Em alguns exemplos, o codificador de vídeo 20 pode realizar, com base em um mesmo contexto de codificação, a codificação CABAC em CBF Y, CBF U, e CBF V do nó atual da RQT. Em tais exemplos, quando a unidade de decodificação por entropia 150 analisa CBF Y, CBF U e CBF V, a unidade de decodificação por entropia 150 pode realizar, com base no mesmo contexto de codificação, a decodificação CABAC de CBF Y, CBF U e CBF V do nó atual da RQT.
[0137] Adicionalmente, em alguns exemplos, o codificador de vídeo 20 pode selecionar, com base nas profundidades de nós da RQT, os contextos de codificação para CBFs Y, CBFs U e CBFs V especificados pelos nós da RQT. Em alguns exemplos, um valor de índice do contexto de codificação selecionado é igual a uma profundidade de um nó da RQT. Por exemplo, se a profundidade de um nó for igual a 2, o valor de índice do contexto de codificação selecionado é igual a 2. O codificador de vídeo 20 pode realizar, com base nos contextos de codificação selecionados para CBFs Y, U e V, as operações de codificação por entropia nos CBFs Y, U e V. Da mesma forma, quando a unidade de decodificação por entropia 150 analisa os CBFs Y, U e V, a unidade de decodificação por entropia 150 pode selecionar, com base nas profundidades dos nos da RQT, contextos de codificação para CBFs Y, U e V especificados pelos nós da RQT. A unidade de decodificação por entropia 140 pode realizar, com base nos contextos de codificação selecionados para CBFs Y, U e V as operações de decodificação por entropia nos CBFs Y, U e V.
[0138] Depois de analisar o CBF V, depois de determinar que o CBF V do nó parente do nó atual não é igual a 1 ("NÃO" em 364), ou depois de analisar CBFs Y, CBFs U e CBFs V na ação 354, a unidade de decodificação por entropia 150 pode determinar se um bloco de pixel residual associado com o nó atual é maior do que um tamanho máximo permitido de TU (368). Em resposta à determinação de que o bloco de pixel residual associado com o nó atual não é maior do que o tamanho máximo permitido de TU ("NÃO" em 368), a unidade de decodificação por entropia 150 pode determinar se o bloco de pixel residual associado com o nó atual é um tamanho mínimo permitido de TU (370).
[0139] Em resposta à determinação de que o bloco de pixel residual do nó atual não é o tamanho mínimo permitido de TU ("NÃO" em 370), a unidade de decodificação por entropia 150 pode determinar se CBF Y, CBF U e CBF V do nó atual são, cada um, iguais a 0 (371). Se CBF Y, CBF U e CBF V do nó atual forem, cada um, iguais a 0, a unidade de decodificação por entropia 150 pode determinar que o nó atual é um nó folha que não é associado com qualquer um dos blocos de coeficiente significantes. De acordo, se CBF Y, CBF U e CBF V do nó atual forem, cada um, iguais a 0 ("SIM" em 271), a unidade de decodificação por entropia 150 pode ter acabado de analisar o nó atual. Dessa forma, se CBF Y do nó, CBF U do nó, e CBF V do nó possuírem, todos, um primeiro valor (por exemplo, 0), o nó não é associado com um indicador de divisão, o indicador de divisão indicando se o nó possui uma pluralidade de nós criança.
[0140] Em resposta à determinação de que os elementos de sintaxe CBF Y, CBF U e CBF V do nó atual não são todos iguais a 0 ("NÃO" em 371), a unidade de decodificação por entropia 150 pode analisar um indicador de divisão a partir da sequência de bits (372). O indicador de divisão pode indicar se o nó atual possui uma pluralidade de nós criança. Dessa forma, se pelo menos um dentre CBF Y do nó atual, CBF U do nó atual e CBF V do nó atual possuir um segundo valor (por exemplo, 1) que seja diferente do primeiro valor (por exemplo, 0), o nó atual é associado com o indicador de divisão. Dessa forma, a unidade de decodificação por entropia 150 pode realizar, com base em um CBF Y de um nó da RQT, um CBF U do nó, e um CBF V do nó, uma determinação da análise de um indicador de divisão de um nó da RQT.
[0141] Em alguns exemplos, o codificador de vídeo 20 pode realizar a codificação CABAC no indicador de divisão. Quando o codificador de vídeo 20 realiza a codificação CABAC no indicador de divisão, o codificador de vídeo 20 pode selecionar um contexto de codificação para o indicador de divisão. Em alguns exemplos, o codificador de vídeo 20 pode selecionar o contexto de codificação com base em um CBF (por exemplo, CBF Y, CBF U e/ou CBF V) do nó atual. Adicionalmente, em alguns exemplos, o codificador de vídeo 20 pode selecionar o contexto de codificação com base no CBF Y, CBF U e CBF V do nó atual. O codificador de vídeo 20 pode realizar, com base no contexto de codificação selecionado, a codificação CABAC no indicador de divisão do nó atual. De forma similar, quando a unidade de decodificação por entropia 150 analisa o indicador de divisão a partir da sequência de bits, a unidade de decodificação por entropia 150 pode selecionar (por exemplo, com base em um CBF do nó atual), um contexto de codificação. Em alguns exemplos, a unidade de decodificação por entropia 150 pode selecionar o contexto de codificação com base no CBF Y, CBF U, e/ou CBF V do nó atual. A unidade de decodificação por entropia 150 pode realizar, com base no contexto de codificação selecionado, a decodificação CABAC no indicador de divisão do nó atual.
[0142] A unidade de decodificação por entropia 150 pode determinar se o indicador de divisão é igual a 1 (374). Em resposta à determinação de que o indicador de divisão é igual a 1 ("SIM" em 374) ou em resposta à determinação de que o bloco de pixel residual associado com o nó atual é maior do que o tamanho máximo permitido de TU ("SIM" em 368), a unidade de decodificação por entropia 150 pode analisar os nós criança do nó atual (376). Dessa forma, a unidade de decodificação por entropia 150 pode, em resposta à realização da determinação de análise do indicador de divisão a partir da sequência de bits, determinar, com base no indicador de divisão do nó atual, se analisa a partir da sequência de bits uma pluralidade de nós criança do nó atual. A unidade de decodificação por entropia 150 pode analisar os nós criança pela realização da operação 340 em cada um dos nós criança. Em resposta à determinação de que o bloco de pixel residual do nó atual é o tamanho mínimo permitido de TU ("SIM" em 370), ou em resposta à determinação de que o indicador de divisão não é igual a 1 ("NÃO" em 374), a unidade de decodificação por entropia 150 pode realizar a parte da operação 340 ilustrada no exemplo da figura 10B.
[0143] A figura 10B é um fluxograma ilustrando uma continuação da operação ilustrativa 340 da figura 10A, de acordo com uma ou mais técnicas dessa descrição. No exemplo da figura 10B, a unidade de decodificação por entropia 150 pode determinar se CBF Y do nó atual é igual a 1 (378). Em resposta à determinação de que CBF Y do nó atual é igual a 1 ("SIM" em 378), a unidade de decodificação por entropia 150 pode analisar um bloco de coeficiente Y a partir da sequência de bits (380). Adicionalmente, em resposta à determinação de que CBF Y do nó atual não é igual a 1 ("NÃO" em 378) ou depois de analisar o bloco de coeficiente Y a partir da sequência de bits (380), a unidade de decodificação por entropia 150 pode determinar se CBF U do nó atual é igual a 1 (382).
[0144] Em resposta à determinação de que CBF U do nó atual é igual a 1 ("SIM" em 382), a unidade de decodificação por entropia 150 pode analisar um bloco de coeficiente U a partir da sequência de bits (384). Adicionalmente, em resposta à determinação de que CBF U do nó atual não é igual a 1 ("NÃO" em 382) ou depois de analisar o bloco de coeficiente U a partir da sequência de bits (384), a unidade de decodificação por entropia 150 pode determinar se CBF V do nó atual é igual a 1 (386).
[0145] Em resposta à determinação de que CBF V do nó atual é igual a 1 ("SIM" em 386), a unidade de decodificação por entropia 150 pode analisar um bloco de coeficiente V a partir da sequência de bits (388). Adicionalmente, em resposta à determinação de que CBF V do nó atual não é igual a 1 ("NÃO" em 386) ou depois de analisar o bloco de coeficiente V a partir da sequência de bits (388), a unidade de decodificação por entropia 150 pode ter acabado de analisar o nó atual. Apesar de a discussão acima ter descrito comportamentos particulares quando os elementos de sintaxe particulares possuem valores particulares (por exemplo, 0 ou 1), as técnicas dessa descrição podem ser aplicáveis quando os elementos de sintaxe em particular possuem valores outros além dos descritos acima.
[0146] Em um ou mais exemplos, as funções descritas podem ser implementadas em hardware, software, firmware ou qualquer combinação dos mesmos. Se implementadas em software, as funções podem ser armazenadas em ou transmitidas como uma ou mais instruções ou código, um meio legível por computador e executadas por uma unidade de processamento com base em hardware. A mídia legível por computador pode incluir meio de armazenamento legível por computador, que corresponde a um meio tangível tal como meio de armazenamento de dados, ou meio de comunicação incluindo qualquer meio que facilite a transferência de um programa de computador de um lugar para outro, por exemplo, de acordo com um protocolo de comunicação. Dessa forma, o meio legível por computador geralmente pode corresponder a (1) meio de armazenamento legível por computador tangível que não é transitório ou (2) um meio de comunicação tal como um sinal ou onda portadora. O meio de armazenamento de dados pode ser qualquer meio disponível que possa ser acessado por um ou mais computadores ou um ou mais processadores para recuperar as instruções, código e/ou estruturas de dados para implementação das técnicas descritas nessa descrição. Um produto de programa de computador pode incluir um meio legível por computador.
[0147] Por meio de exemplo, e não de limitação, tal meio de armazenamento legível por computador pode compreender RAM, ROM, EEPROM, CD-ROM ou outro armazenamento em disco ótico, armazenamento em disco magnético, ou outros dispositivos de armazenamento magnético, memória flash, ou qualquer outro meio que possa ser utilizado para armazenar o código de programa desejado na forma de instruções ou estruturas de dados e que possa ser acessado por um computador. Além disso, qualquer conexão é adequadamente chamada de meio legível por computador. Por exemplo, se instruções forem transmitidas a partir de um sítio da rede, servidor ou outra fonte remota utilizando um cabo coaxial, um cabo de fibra ótica, um par torcido, linha de assinante digital (DSL), ou tecnologias sem fio tal como infravermelho, rádio e micro-ondas, então o cabo coaxial, o cabo de fibra ótica, o par torcido, DSL, ou tecnologias sem fio tal como infravermelho, rádio e micro-ondas são incluídos na definição de meio. Deve-se compreender, no entanto, que o meio de armazenamento legível por computador e o meio de armazenamento de dados não incluem conexões, ondas portadoras, sinais ou outro meio transiente, mas, ao invés disso, são direcionados para meio de armazenamento tangível não transiente. Disquete e disco, como utilizados aqui, incluem disco compacto (CD), disco a laser, disco ótico, disco versátil digital (DVD), disquete e disco Blu- ray, onde disquetes normalmente reproduzem os dados magneticamente, enquanto discos reproduzem os dados oticamente com lasers. Combinações do acima também devem ser incluídas no escopo de meio legível por computador.
[0148] Instruções podem ser executadas por um ou mais processadores, tal como um ou mais processadores de sinal digital (DSPs), microprocessadores de finalidade geral, circuitos integrados específicos de aplicativo (ASICs), conjuntos lógicos programáveis em campo (FPGAs), ou outros conjuntos de circuito lógicos integrados ou discretos. De acordo, o termo "processador" como utilizado aqui pode se referir a qualquer estrutura acima ou qualquer outra estrutura adequada para implementação das técnicas descritas aqui. Adicionalmente, em alguns aspectos, a funcionalidade descrita aqui pode ser fornecida dentro de módulos de hardware e/ou software dedicados configurados para codificação e decodificação, ou incorporados em um codec combinado. Além disso, as técnicas podem ser totalmente implementadas em um ou mais circuitos ou elementos lógicos.
[0149] As técnicas dessa descrição podem ser implementadas em uma ampla variedade de dispositivos ou aparelhos incluindo um aparelho sem fio, um circuito integrado (IC) ou um conjunto de ICs (por exemplo, um conjunto de chip). Vários componentes, módulos ou unidades são descritos nessa descrição para enfatizar os aspectos funcionais dos dispositivos configurados para realizar as técnicas descritas, mas não exigem necessariamente a realização por unidades de hardware diferentes. Ao invés disso, como descrito acima, várias unidades podem ser combinadas em uma unidade de hardware de codec ou fornecidas por uma coleção de unidades de hardware interoperacionais, incluindo um ou mais processadores como descrito acima, em conjunto com software e/ou firmware adequado.
[0150] Vários exemplos foram descritos. Esses e outros exemplos estão dentro do escopo das reivindicações a seguir.

Claims (16)

1. Método para codificação de dados de vídeo, o método caracterizado por compreender: gerar (252) uma sequência de bits que inclui dados que representam um quadtree residual, RQT, para uma unidade de codificação, CU, a CU sendo maior do que um tamanho máximo permitido de unidade de transformação, TU, a RQT incluindo uma hierarquia de nós, onde um nó raiz da RQT corresponde à CU como um todo e nós folha da RQT correspondem às TUs da CU; em que a sequência de bits inclui pelo menos um indicador de bloco codificado, CBF, de componente de crominância no nó raiz do RQT, cada CBF de componente de crominância de nó raiz do RQT indicando se qualquer uma das TUs da CU são associadas com um bloco de coeficiente de crominância significante que é baseado em amostras do respectivo componente de crominância; e enviar (254) da sequência de bits.
2. Método de decodificação de dados de vídeo, o método caracterizado por compreender: analisar (302), a partir de uma sequência de bits que inclui uma representação codificada dos dados de vídeo, pelo menos um indicador de bloco codificado, CBF, de componente de crominância de um nó raiz de um quadtree residual, RQT, de uma unidade de codificação, CU, em que um bloco de pixel da CU é maior do que um tamanho máximo permitido da unidade de transformação, TU; e se o CBF de componente de crominância de nó raiz do RQT possuir um primeiro valor, analisar (304), a partir da sequência de bits, um bloco de coeficiente de crominância associado com um nó folha do RQT, em que se o CBF de componente de crominância de nó raiz do RQT possuir um segundo valor que é diferente do primeiro valor, o bloco de coeficiente de crominância associado com o nó folha não é analisado a partir da sequência de bits.
3. Método, de acordo com a reivindicação 2, caracterizado por compreender adicionalmente analisar, a partir da sequência de bits, um CBF de luminescência, Y, de nó raiz indicando se qualquer nó folha do RQT está associado com um bloco de coeficientes de luminescência significante.
4. Método, de acordo com a reivindicação 2, caracterizado por compreender adicionalmente analisar, a partir da sequência de bits, um indicador do nó raiz do RQT, o indicador indicando se existe um nó folha do RQT que seja associado com um bloco de coeficiente significante, em que se o indicador indicar que nenhum nó folha do RQT está associado com um bloco de coeficiente significante, nenhum nó no RQT é associado com um CBF.
5. Método, de acordo com a reivindicação 2, caracterizado por compreender adicionalmente: criar, com base em um CBF Y de um nó do RQT, um CBF U do nó e um CBF V do nó, uma determinação para analisar um indicador de divisão de um nó do RQT; e em resposta a realização da determinação, determinar, com base no indicador de divisão do nó, se analisa a partir da sequência de bits uma pluralidade de nós criança do nó; em que CBF Y indica se o nó ou qualquer nó descendente do nó é associado com um bloco de coeficiente Y significante, o CBF U indica se o nó ou qualquer nó descendente do nó está associado com um bloco de coeficiente U significante, e CBF V indica se o nó ou qualquer nó descendente do nó está associado com um bloco de coeficiente V significante.
6. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que a sequência de bits compreende adicionalmente um CBF de luminescência Y de nó raiz do RTQ que indica se qualquer uma das TUs da CU são associadas com um bloco de coeficiente de luminescência significante.
7. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que: o nó raiz do RQT é associado com um indicador; se o indicador possuir um primeiro valor, pelo menos uma das TUs da CU é associada com um bloco de coeficiente significante; e se o indicador possuir um segundo valor que é diferente do primeiro valor, nenhuma das TUs da CU é associada com um bloco de coeficiente significante, e nenhum nó no RQT é associado com um CBF Y, um CBF U ou um CBF V.
8. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que para cada nó respectivo no RQT: se um CBF Y do nó respectivo, um CBF U do nó respectivo e um CBF V do nó respectivo tiverem, todos, um primeiro valor, o nó respectivo não é associado com um indicador de divisão, o indicador de divisão indicando se o nó respectivo possui uma pluralidade de nós criança; se pelo menos um dentre CBF Y do nó respectivo, CBF U do nó respectivo, e CBF V do nó respectivo possuir um segundo valor que é diferente do primeiro valor, o nó respectivo é associado com o indicador de divisão; em que CBF Y indica se qualquer TU que corresponde ao nó respectivo ou um nó descendente do nó respectivo é associado com um bloco de coeficiente Y significante; em que CBF U indica se qualquer TU que corresponde ao nó respectivo ou um nó descendente do nó respectivo é associado com um bloco de coeficiente U significante; e em que CBF V indica se qualquer TU que corresponde ao nó respectivo ou um nó descendente do nó respectivo é associado com um bloco de coeficiente V significante.
9. Método, de acordo com a reivindicação 1 ou 2, caracterizado por compreender adicionalmente: selecionar, com base pelo menos em parte em um CBF de um nó do RQT, um contexto de codificação; e realizar, com base no contexto de codificação selecionado, codificação aritmética binária adaptativa de contexto, CABAC, codificando em um indicador de divisão do nó, o indicador de divisão indicando se o nó possui uma pluralidade de nós criança.
10. Método, de acordo com a reivindicação 1 ou 2, caracterizado por compreender adicionalmente realizar, com base pelo menos em parte em um mesmo contexto de codificação, respectivamente codificação ou decodificação CABAC em um CBF Y, um CBF U e um CBF V de um nó no RQT.
11. Método, de acordo com a reivindicação 1 ou 2, caracterizado pelo fato de que um nó não folha do RQT é associado com um indicador de divisão, um CBF Y, um CBF U e um CBF V, o indicador de divisão indicando que o nó não folha possui uma pluralidade de nós descendentes, o CBF Y indicando se qualquer um dos nós descendentes é associado com um bloco de coeficiente de luminescência significante, o CBF U indicando se qualquer um dos nós descendentes é associado com um bloco de coeficientes U significante, o CBF V indicando se qualquer um dos nós descendentes é associado com um bloco de coeficientes V significante.
12. Método, de acordo com a reivindicação 1 ou 2, caracterizado por compreender adicionalmente: selecionar, com base nas profundidades de nós do RQT, contextos de codificação para CBFs Y, U e V especificados pelos nós do RQT; em que um valor de índice do contexto de codificação é igual a uma profundidade de um nó no RQT que especifica o CBF; e realizar, com base nos contextos de codificação selecionados para CBFs Y, U e V, respectivamente as operações de codificação ou decodificação por entropia nos CBFs Y, U e V.
13. Método, de acordo com a reivindicação 1 ou 2, caracterizado pelo fato de que, para cada nó respectivo no RQT: o nó respectivo não incluir um CBF U a menos que o nó respectivo seja o nó raiz do RQT ou um CBF U de um nó progenitor do nó respectivo indica que um nó descendente do nó progenitor está associado com um bloco de crominância U significante; e o nó respectivo não incluir um CBF V a menos que o nó respectivo seja o nó raiz do RQT ou um CBF V do nó progenitor do nó respectivo indica que um nó descendente do nó progenitor é associado com um bloco de crominância V significante.
14. Dispositivo de codificação de vídeo que codifica dados de vídeo, o dispositivo de codificação de vídeo caracterizado por compreender meios para gerar uma sequência de bits que inclui dados que representam um quadtree residual, RQT, para uma unidade de codificação, CU, a CU sendo maior do que um tamanho máximo permitido de unidade de transformação, TU, o RQT incluindo uma hierarquia de nós, em que um nó raiz do RQT corresponde à CU como um todo e os nós folha do RQT correspondem às TUs da CU; em que a sequência de bits inclui pelo menos um indicador de bloco codificado, CBF, de componente de crominância no nó raiz do RQT, cada CBF de componente de crominância de nó raiz do RQT indicando se qualquer uma das TUs da CU são associadas com um bloco de coeficiente de crominância significante que é baseado em amostras do respectivo componente de crominância.
15. Dispositivo de decodificação de vídeo que decodifica os dados de vídeo, o dispositivo de decodificação de vídeo caracterizado por compreender: meios para analisar, a partir de uma sequência de bits que inclui uma representação codificada dos dados de vídeo, pelo menos um indicador de bloco codificado, CBF, de componente de crominância de um nó raiz de um quadtree residual, RQT, de uma unidade de codificação, CU, em que um bloco de pixel da CU é maior do que um tamanho máximo permitido da unidade de transformação, TU; e meios para analisar, se o CBF de componente de crominância de nó raiz do RQT possui um primeiro valor, a partir da sequência de bits, um bloco de coeficiente de crominância associado com um nó folha do RQT, em que se o CBF de componente de crominância de nó raiz do RQT possuir um segundo valor que é diferente do primeiro valor, o bloco de coeficiente de crominância associado com o nó folha não é analisado a partir da sequência de bits.
16. Memória legível por computador caracterizada pelo fato de contém gravado na mesma o método conforme definido em qualquer uma das reivindicações 1 a 13.
BR112014024920-2A 2012-04-05 2013-03-19 Codificação de indicador de bloco codificado BR112014024920B1 (pt)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201261620765P 2012-04-05 2012-04-05
US61/620,765 2012-04-05
US13/739,598 2013-01-11
US13/739,598 US9467701B2 (en) 2012-04-05 2013-01-11 Coded block flag coding
PCT/US2013/032989 WO2013151785A1 (en) 2012-04-05 2013-03-19 Coded block flag coding

Publications (3)

Publication Number Publication Date
BR112014024920A2 BR112014024920A2 (pt) 2017-06-20
BR112014024920A8 BR112014024920A8 (pt) 2021-06-22
BR112014024920B1 true BR112014024920B1 (pt) 2023-03-14

Family

ID=49292281

Family Applications (1)

Application Number Title Priority Date Filing Date
BR112014024920-2A BR112014024920B1 (pt) 2012-04-05 2013-03-19 Codificação de indicador de bloco codificado

Country Status (22)

Country Link
US (1) US9467701B2 (pt)
EP (1) EP2834978B1 (pt)
JP (1) JP6181150B2 (pt)
KR (1) KR101773240B1 (pt)
CN (1) CN104247424B (pt)
AR (1) AR092816A1 (pt)
AU (1) AU2013243793B2 (pt)
BR (1) BR112014024920B1 (pt)
CA (1) CA2866900C (pt)
DK (1) DK2834978T3 (pt)
ES (1) ES2650795T3 (pt)
HK (1) HK1203257A1 (pt)
HU (1) HUE034972T2 (pt)
IL (1) IL234568A (pt)
MY (1) MY167824A (pt)
PH (1) PH12014502116B1 (pt)
PT (1) PT2834978T (pt)
RU (1) RU2627119C2 (pt)
SG (1) SG11201405546SA (pt)
SI (1) SI2834978T1 (pt)
TW (1) TWI527465B (pt)
WO (1) WO2013151785A1 (pt)

Families Citing this family (39)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9749645B2 (en) * 2012-06-22 2017-08-29 Microsoft Technology Licensing, Llc Coded-block-flag coding and derivation
CN103533324B (zh) * 2012-07-03 2017-04-05 乐金电子(中国)研究开发中心有限公司 一种深度图像帧内编码方法、装置及编码器
US9088770B2 (en) * 2012-08-15 2015-07-21 Intel Corporation Size based transform unit context derivation
US10291934B2 (en) * 2013-10-02 2019-05-14 Arris Enterprises Llc Modified HEVC transform tree syntax
EP3127330A4 (en) * 2014-05-05 2017-12-13 MediaTek Singapore Pte Ltd. Method and apparatus for determining residue transform tree representation
WO2016074147A1 (en) * 2014-11-11 2016-05-19 Mediatek Singapore Pte. Ltd. Separated coding tree for luma and chroma
EP3293975A4 (en) * 2015-09-08 2018-10-10 Samsung Electronics Co., Ltd. Device and method for entropy encoding and decoding
US20170150176A1 (en) * 2015-11-25 2017-05-25 Qualcomm Incorporated Linear-model prediction with non-square prediction units in video coding
RU2739251C2 (ru) * 2016-02-11 2020-12-22 Томсон Лайсенсинг Способ и устройство для кодирования/декодирования элемента изображения, содержащего данные изображения, представленные каналом составляющей яркости и, по меньшей мере, одним каналом составляющей цветности
US9942548B2 (en) * 2016-02-16 2018-04-10 Google Llc Entropy coding transform partitioning information
US10609423B2 (en) 2016-09-07 2020-03-31 Qualcomm Incorporated Tree-type coding for video coding
US10609414B2 (en) 2017-05-08 2020-03-31 Qualcomm Incorporated Context modeling for transform coefficient coding
WO2019027200A1 (ko) * 2017-07-31 2019-02-07 에스케이텔레콤 주식회사 비-제로 계수들의 위치를 표현하는 방법 및 장치
WO2019045538A1 (ko) * 2017-09-04 2019-03-07 삼성전자 주식회사 부호화 방법 및 그 장치, 복호화 방법 및 그 장치
CN117499684A (zh) * 2017-09-20 2024-02-02 韩国电子通信研究院 用于对图像进行编码/解码的方法和装置
CN118042131A (zh) * 2017-11-16 2024-05-14 松下电器(美国)知识产权公司 图像编码装置、编码方法、图像解码装置、解码方法和非暂时性存储介质
CN110035287B (zh) 2018-01-12 2023-05-09 富士通株式会社 对统一转换单元模式进行分组标识的方法、装置和电子设备
CN111771377A (zh) 2018-01-30 2020-10-13 松下电器(美国)知识产权公司 编码装置、解码装置、编码方法和解码方法
CN112166614B (zh) * 2018-03-27 2023-07-14 株式会社Kt 用于处理视频信号的方法和设备
WO2019210857A1 (en) 2018-04-30 2019-11-07 Mediatek Inc. Method and apparatus of syntax interleaving for separate coding tree in video coding
KR101997681B1 (ko) * 2018-06-11 2019-07-08 광운대학교 산학협력단 양자화 파라미터 기반의 잔차 블록 부호화/복호화 방법 및 장치
JP7278719B2 (ja) * 2018-06-27 2023-05-22 キヤノン株式会社 画像符号化装置、画像符号化方法及びプログラム、画像復号装置、画像復号方法及びプログラム
KR20230031976A (ko) 2018-07-12 2023-03-07 후아웨이 테크놀러지 컴퍼니 리미티드 비디오 코딩에서의 경계 블록 파티셔닝
CN111294603B (zh) * 2018-12-06 2023-09-29 华为技术有限公司 视频编解码方法及装置
BR112021013444A2 (pt) * 2019-01-08 2021-10-19 Huawei Technologies Co., Ltd. Método, aparelho e sistema de predição de imagem, dispositivo, e mídia de armazernamento
CN111416975B (zh) * 2019-01-08 2022-09-16 华为技术有限公司 预测模式确定方法和装置
KR102464910B1 (ko) * 2019-02-28 2022-11-09 삼성전자주식회사 크로마 성분을 예측하는 비디오 부호화 및 복호화 방법, 및 크로마 성분을 예측하는 비디오 부호화 및 복호화 장치
BR112020026183A2 (pt) * 2019-03-01 2021-09-08 Huawei Technologies Co., Ltd. Método de codificação de vídeo, codificador, decodificador e produto de programa de computador
AU2019201649A1 (en) * 2019-03-11 2020-10-01 Canon Kabushiki Kaisha Method, apparatus and system for encoding and decoding a tree of blocks of video samples
KR102630411B1 (ko) 2019-04-20 2024-01-29 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 크로마 잔차 조인트 코딩을 위한 구문 요소의 시그널링
WO2020215216A1 (zh) * 2019-04-23 2020-10-29 Oppo广东移动通信有限公司 图像解码方法、解码器以及存储介质
WO2020233514A1 (en) * 2019-05-17 2020-11-26 Beijing Bytedance Network Technology Co., Ltd. Signaling of syntax elements according to chroma format
CN113785574B (zh) 2019-05-30 2022-10-11 北京字节跳动网络技术有限公司 色度分量的自适应环路滤波
WO2020242260A1 (ko) * 2019-05-31 2020-12-03 한국전자통신연구원 전역적 문맥을 이용하는 기계 학습 기반의 이미지 압축을 위한 방법 및 장치
US11212545B2 (en) * 2019-06-07 2021-12-28 Tencent America LLC Method and apparatus for improved implicit transform selection
WO2020252726A1 (zh) * 2019-06-20 2020-12-24 富士通株式会社 图像编码和解码方法、装置以及视频编解码设备
WO2020261313A1 (ja) * 2019-06-24 2020-12-30 日本電信電話株式会社 画像符号化方法、及び画像復号方法
US11190777B2 (en) * 2019-06-30 2021-11-30 Tencent America LLC Method and apparatus for video coding
US11317090B2 (en) * 2019-08-12 2022-04-26 Tencent America LLC Method and apparatus for video coding

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2408076C1 (ru) * 2009-07-02 2010-12-27 Корпорация "САМСУНГ ЭЛЕКТРОНИКС Ко., Лтд." Способ сжатия изображения
KR101675116B1 (ko) * 2009-08-06 2016-11-10 삼성전자 주식회사 영상의 부호화 방법 및 장치, 그 복호화 방법 및 장치
US8942282B2 (en) * 2010-04-12 2015-01-27 Qualcomm Incorporated Variable length coding of coded block pattern (CBP) in video compression
US9094658B2 (en) * 2010-05-10 2015-07-28 Mediatek Inc. Method and apparatus of adaptive loop filtering
US9172963B2 (en) 2010-11-01 2015-10-27 Qualcomm Incorporated Joint coding of syntax elements for video coding
US20120114034A1 (en) * 2010-11-08 2012-05-10 Mediatek Inc. Method and Apparatus of Delta Quantization Parameter Processing for High Efficiency Video Coding
US9210442B2 (en) * 2011-01-12 2015-12-08 Google Technology Holdings LLC Efficient transform unit representation
US8948271B2 (en) * 2011-01-13 2015-02-03 Texas Instruments Incorporated Method and apparatus for a low complexity transform unit partitioning structure for HEVC
US9380319B2 (en) * 2011-02-04 2016-06-28 Google Technology Holdings LLC Implicit transform unit representation
US8953690B2 (en) * 2011-02-16 2015-02-10 Google Technology Holdings LLC Method and system for processing video data
US9788019B2 (en) * 2011-03-09 2017-10-10 Hfi Innovation Inc. Method and apparatus of transform unit partition with reduced complexity
US9848197B2 (en) 2011-03-10 2017-12-19 Qualcomm Incorporated Transforms in video coding
US8494290B2 (en) * 2011-05-05 2013-07-23 Mitsubishi Electric Research Laboratories, Inc. Method for coding pictures using hierarchical transform units
US9807426B2 (en) 2011-07-01 2017-10-31 Qualcomm Incorporated Applying non-square transforms to video data
US8804816B2 (en) * 2011-08-30 2014-08-12 Microsoft Corporation Video encoding enhancements

Also Published As

Publication number Publication date
EP2834978A1 (en) 2015-02-11
WO2013151785A1 (en) 2013-10-10
AU2013243793B2 (en) 2017-08-10
PH12014502116A1 (en) 2014-12-10
MY167824A (en) 2018-09-26
AU2013243793A1 (en) 2014-10-02
PH12014502116B1 (en) 2014-12-10
CA2866900A1 (en) 2013-10-10
CN104247424B (zh) 2018-01-26
CA2866900C (en) 2018-05-01
US20130266074A1 (en) 2013-10-10
KR101773240B1 (ko) 2017-08-31
SG11201405546SA (en) 2014-11-27
HK1203257A1 (en) 2015-10-23
ES2650795T3 (es) 2018-01-22
US9467701B2 (en) 2016-10-11
EP2834978B1 (en) 2017-09-06
RU2014144293A (ru) 2016-05-27
PT2834978T (pt) 2017-12-13
KR20150003778A (ko) 2015-01-09
DK2834978T3 (da) 2017-11-27
SI2834978T1 (en) 2018-01-31
BR112014024920A2 (pt) 2017-06-20
AR092816A1 (es) 2015-05-06
TW201349866A (zh) 2013-12-01
TWI527465B (zh) 2016-03-21
HUE034972T2 (en) 2018-05-02
JP6181150B2 (ja) 2017-08-16
CN104247424A (zh) 2014-12-24
BR112014024920A8 (pt) 2021-06-22
RU2627119C2 (ru) 2017-08-03
JP2015515824A (ja) 2015-05-28
IL234568A (en) 2017-09-28

Similar Documents

Publication Publication Date Title
BR112014024920B1 (pt) Codificação de indicador de bloco codificado
US9185405B2 (en) Coded block flag inference in video coding
ES2727814T3 (es) Estructura sintáctica de parámetros de descodificador hipotético de referencia
ES2874848T3 (es) Restricción de unidades de predicción en segmentos b a interpredicción unidireccional
ES2874552T3 (es) Diseño de codificación y descodificación en modo de paleta
ES2770664T3 (es) Restricción en el tamaño de bloque de paleta en la codificación de vídeo
ES2744235T3 (es) Actualizaciones de conjuntos de parámetros en la codificación de vídeo
US9706200B2 (en) Unification of signaling lossless coding mode and pulse code modulation (PCM) mode in video coding
BR112014017379B1 (pt) Subfluxos para processamento paralelo de frente de onda na codificação de vídeo
BR112016015546B1 (pt) Codificação de índice de cor para codificação de vídeo com base em paleta
BR112016000863B1 (pt) Previsão residual de componente intercor
BR112016022085B1 (pt) Determinação de tamanho de paleta, entradas de paleta e filtragem de blocos codificados por paleta em codificação de vídeo
KR20170097655A (ko) 서브샘플링 포맷을 위한 팔레트 모드
JP2015156648A (ja) ビデオコード化におけるフレーム分割
BR112014017706B1 (pt) Sinalização de parâmetros de filtro de desbloqueio em codificação de vídeo
BR112015024766B1 (pt) Desabilitação da ocultação de dados de sinal na codificação de vídeo
BR112014010046B1 (pt) Método para decodificar dados de vídeo, método e dispositivo para codificar dados de vídeo e memória legível por computador
BR112015015802B1 (pt) Mensagens sei não aninhadas em codificação de vídeo
BR112015016256B1 (pt) Sinalização de contagem de ordem de imagens para relações de informação de temporização para temporização de vídeo em codificação de vídeo
BR112016030530B1 (pt) Método e aparelho para decodificação de dados de vídeo e método e aparelho para codificação de dados de vídeo em um fluxo de bits
BR112016021138B1 (pt) Codificação de nível de coeficiente em um processo de codificação de vídeo

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]
B06U Preliminary requirement: requests with searches performed by other patent offices: procedure suspended [chapter 6.21 patent gazette]
B15K Others concerning applications: alteration of classification

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

Ipc: H04N 19/13 (2014.01), H04N 19/159 (2014.01), H04N

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 19/03/2013, OBSERVADAS AS CONDICOES LEGAIS